title: Convert Json to Datatable when json has multiple levels
body: <p>In my program, it's the first time that I'm trying to parse JSON content.<br />
  The result I'm trying to get is a DataTable with columns like this:</p>
  <pre><code>| Text of group | Text of Item | Command of Item |    
  </code></pre>
  <p>The JSON is the following:</p>
  <pre><code>{
        &quot;Groups&quot;: [
          {
            &quot;Items&quot;: [
              {
                &quot;Command&quot;: &quot;Framework.Windows.Components.ESScrollerForm, ESGrid|SHOW|Χρήστες|ESGOUser|ESGOUser_def|||65535&quot;,
                &quot;Key&quot;: &quot;834888dd-c4d5-449a-96b7-67db5c3d2692&quot;,
                &quot;Text&quot;: &quot;Users&quot;,
                &quot;ImageIndex&quot;: -1
              },
              {
                &quot;Command&quot;: &quot;Framework.Windows.Components.ESScrollerForm, ESGrid|SHOW|QuestionaireSurveyorQuery|ESTMTask|QuestionaireSurveyorQuery|||0&quot;,
                &quot;Key&quot;: &quot;b71de66d-2baf-4452-ada7-8fc67044876b&quot;,
                &quot;Text&quot;: &quot;QuestionaireSurveyorQuery&quot;
              }
            ],
            &quot;Expanded&quot;: true,
            &quot;Tag&quot;: &quot;&quot;,
            &quot;Key&quot;: &quot;b741e67a-a3cd-4b97-91cf-ae9c9d9db7d7&quot;,
            &quot;Text&quot;: &quot;Settings&quot;,
            &quot;ImageIndex&quot;: -1
          },
          {
            &quot;Items&quot;: [
              {
                &quot;64String&quot;: &quot;Soap&quot;,
                &quot;Command&quot;: &quot;cInvoke|Booked Requests Agent Booking|SHOW|ESMIS|BookedReqAgentBook||False&quot;,
                &quot;Key&quot;: &quot;bfbc3d4a-ef8a-49a0-918a-331813ba90fb&quot;,
                &quot;Text&quot;: &quot;Requests Agent Booking&quot;,
                &quot;ImageIndex&quot;: -1
              },
              {
                &quot;64String&quot;: &quot;Jrse&quot;,
                &quot;Command&quot;: &quot;cInvoke|HHG SF Profit \u0026 Loss|SHOW|ESMIS|HHGFileProfitability||False&quot;,
                &quot;Key&quot;: &quot;cf1cbffc-aba9-4e0f-8d6c-ba7219932fb6&quot;,
                &quot;Text&quot;: &quot;HHG SF Profit \u0026\u0026 Loss&quot;,
                &quot;ImageIndex&quot;: -1
              }
            ],
            &quot;Tag&quot;: &quot;..CSShortcuts\\HHGReporting.ebl&quot;,
            &quot;Key&quot;: &quot;eff0d713-a70e-4582-a103-b8cc5cecdad6&quot;,
            &quot;Text&quot;: &quot;HHGReporting&quot;,
            &quot;ImageIndex&quot;: -1
         }
      ]
   }
  </code></pre>
  <p>In the past, I have succesfully parsed complex XML using <code>XPATH</code>, but now I have struggled a lot using Newtonsoft.Json with no success.</p>
  <p>What I have tried, is to first create 3 classes using online generators:</p>
  <pre><code>Public Class Rootobject
      Public Property Groups() As Group
  End Class
  
  Public Class Group
      Public Property Items() As Item
      Public Property Expanded As Boolean
      Public Property Tag As String
      Public Property Key As String
      Public Property Text As String
      Public Property ImageIndex As Integer
  End Class
  
  Public Class Item
      Public Property Command As String
      Public Property Key As String
      Public Property Text As String
      Public Property ImageIndex As Integer
      Public Property 64String As String
  End Class
  </code></pre>
  <p>Any ideas how the deserialized commands should be, in order the get the data as a DataTable with the structure described?</p>