rage
rage

Reputation: 1837

How to manipulate this JSON array in JavaScript

I have a JSON array like:

var data = {
  name: 'Mike',
  level: 1,
  children: [
    { name: 'Susan',
      level: 2,   },
    { name: 'Jake',
      level: 2    },
    { name: 'Roy',
      level: 2 },
    ]
  }

How could i add a children array to Jake so that the array would then look like:

var data = {
  name: 'Mike',
  level: 1,
  children: [
    { name: 'Susan',
      level: 2,   },
    { name: 'Jake',
      level: 2,
      children: [ 
             { name: 'Angela',
               level: 3 }   
                ] 
    },
    { name: 'Roy',
      level: 2 },
    ]
  }

Upvotes: 0

Views: 59

Answers (2)

Guffa
Guffa

Reputation: 700352

That's not JSON, that's a Javascript object. JSON is a text format for representing data.

First you would need to find Jake. He is in the data.children array, so look there:

var i = 0;
while (data.children[i].name != 'Jake') i++;

(That code assumes that Jake is actually somewhere in the array.)

Now you can add a property to the object, which is an array of objects:

data.children[i].children = [ 
  { name: 'Angela', level: 3 }   
];

Upvotes: 3

Billy Moon
Billy Moon

Reputation: 58531

data.children[1].children = [{name: 'Angela',level: 3 }]

Upvotes: 0

Related Questions