title: Nested Tree structure object trying to extract and get information Json object
body: <p>I would like to know the correct way to create a nested Json tree Structure object in javascript.
  data structure containing objects and arrays. How can I extract the information, i.e. access a specific or multiple values (or id)?</p>
  
  <p>I have a very deep nested tree structure Json and I am given an object that can exist at any depth. I need to be able to iterate through all grandparent / parent / children nodes until I find the requested category, plus be able to capture its grandparent / parent / children categories all the way through. </p>
  
  <p>//input data structure </p>
  
  <pre><code>[{
      "Type": "grdparent1",
      "name": "grdparent1",
      "children": [{
          "Type": "grdparent1",
          "Id": 45,
          "children": []
      }, {
          "Type": "grdparent1",
          "Id": 46,
          "children": [{
              "Type": "parent1",
              "Id": 54,
              "children": [{
                  "Type": "child1",
                  "Id": 63,
                  "children": []
              }, {
                  "Type": "child2",
                  "Id": 64,
                  "children": []
              }]
          }, {
              "Type": "parent2",
              "Id": 57,
              "children": []
          }]
      }]
  }, {
      "Type": "grdparent2",
      "name": "grdparent2",
      "children": [{
          "Type": "grdparent2",
          "Id": 4,
          "children": [{
              "Type": "parent1",
              "Id": 16,
              "children": [{
                  "children": [],
                  "Type": "child1",
                  "Id": 28,
              }]
          }, {
              "Type": "parent2",
              "Id": 17,
              "children": []
          }]
      }]
  }, {
      "Type": "grdparent3",
      "name": "grdparent3",
      "children": []
  }, {
      "Type": "grdparent4",
      "name": "grdparent4",
      "children": [{
          "Type": "parent1",
          "Id": 167,
          "children": []
      }]
  }]
  </code></pre>
  
  <p>//output</p>
  
  <pre><code>[{
      "grdparent1": [{
          "Id": 45,
      }, {
          "Id": 46,
          "parent1": [{
              "Id": 54,
              "child1": {
                  "Id": 63
              }
          }, {
              "child2": {
                  "Id": 64
              }
          }]
      }, {
          "parent2": [{
              "Id": 57
          }]
      }]
  }, {
      "grdparent2": [{
          "Id": 4,
          "parent1": [{
              "Id": 16,
              "child1": [{
                  "Id": 28
              }]
          }, {
              "parent2": [{
                  "Id": 17
              }]
          }]
      }, {
          "grdparent4": [{
              "parent1": [{
                  "Id": 167
              }]
          }]
      }]
  }]
  </code></pre>