2015-08-23 3 views
0

У меня есть массив JSON как:Как манипулировать этот массив JSON в JavaScript

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

Как я мог бы добавить массив детей к Джейку, так что массив будет выглядеть:

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

ответ

3

Это не JSON, это объект Javascript. JSON - текстовый формат для представления данных.

Сначала вам нужно будет найти Джейка. Он находится в data.children массиве, так что смотрите здесь:

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

(Этот код предполагает, что Джейк на самом деле где-то в массиве.)

Теперь вы можете добавить свойство к объекту, который является массивом объектов:

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

есть ли способ для выполнения кода 'data.children [я] .children = [ {имя: 'Ангела', уровень: 3} ];' 'с функцией push' ? – rage

+0

@rage: сначала вам нужно, чтобы свойство было массивом: 'data.children [i] .children = [];'. Затем вы можете вставлять в него объекты: 'data.children [i] .children.push ({name: 'Angela', level: 3});'. – Guffa

+0

спасибо за помощь @ Guffa – rage

0
data.children[1].children = [{name: 'Angela',level: 3 }] 
Смежные вопросы