title: Confusion in getting Parent from JToken
body: <p>I have the following JSON document stored in a text file</p>
  
  <pre><code>{
      "attributes": {"attr0":"value0"},
      "children" : {
          "ProductA" : {
              "attributes": {"attr1":"value1", "attr2":"value2"}, 
              "children" : {
                  "ProductC":{
                      "attributes": {"attr3":"value3", "attr4":"value4"}, 
                      "children" : {}, 
                      "referencedChildren" : {}
                  }
              }, 
              "referencedChildren" : {}
          }, 
          "ProductB" : {
              "attributes": {"attr5":"value5", "attr6":"value6"}, 
              "children" : {}, 
              "referencedChildren" : {}
          }
      },
      "referencedChildren" : {}
  }
  </code></pre>
  
  <p>I have written this code in C# using NewtonSoft JSon.NET Library</p>
  
  <pre><code>string content = File.ReadAllText(@"c:\temp\foo.txt");
  JToken token = JToken.Parse(content);
  JToken p2 = token["children"]["ProductA"]["children"]["ProductC"];
  </code></pre>
  
  <p>This works and I get the node for <code>p2</code>.</p>
  
  <p>However if I want the node for <code>ParentA</code> from the <code>p2</code> node. I have to say</p>
  
  <pre><code>JToken p1 = p2.Parent.Parent.Parent.Parent.Parent;
  Console.WriteLine(((JProperty)p1).Name);
  </code></pre>
  
  <p>The code above prints <code>"ProductA"</code>. But the the confusing part is that why do I have to call parent 5 times.</p>
  
  <p>When I look at my document, I can see that <code>"children"</code> is the parent of <code>"ProductC"</code> and then <code>"ProductA"</code> is the parent of children. Therefore 2 calls to <code>Parent</code> should have got me <code>ParentA</code>.</p>
  
  <p>Why do I need 5 calls?</p>