title: C# - parsing json formatted data into nested hashtables
body: <p>I’m trying to work with some json formatted data in C#, but, I’m having some problems determining the proper way to approach the problem.  My issue is that the json formatted data will be in an unknown format (I know that sounds odd … please read on).  Basically, the json formatted data will be some collection of name/value pairs where the values may or may not be arrays of nested name/value pairs.  To make things more fun, the nesting of the name/value pair arrays can continue on ad infinitum.</p>
  
  <p>For example:
      I might have some data that looks like…</p>
  
  <pre><code>{
      "1": {
          "1.1": {
              "1.1.1": "value1",
              "1.1.2": "value2",
              "1.1.3": "value3"
          },
          "1.2": "value4",
          "1.3": {
              "1.3.1": {
                  "1.3.1.1": "value5",
                  "1.3.1.2": "value6"
              },
              "1.3.1.2": "value7",
              "1.3.1.3": "value8"
          }
      }
  }
  </code></pre>
  
  <p>Unfortunately, I don’t know how much nesting is going to occur and technically I don’t know what names/value pairs will be present in any given message.</p>
  
  <p>Is there any supported mechanism in C# that would enable me to easily parse this into a nested set of hastables?</p>
  
  <p>I’d like to do something along the lines of (note this code is not 100% syntactically correct and would better be done via recursion … but it get’s the idea across).</p>
  
  <pre><code>Hashtable ht = [deserialize data method](jsonformattedstring);
  foreach (Hashtable nested in ht)
  {
      If (nested.count &gt; 1)
          {
          Foreach (hashtable next in nested)
          …
          }
  }
  </code></pre>