如何从JSON数组修改或更改特定对象?

时间:2015-10-07 07:34:36

标签: javascript jquery json

假设我有一个JSON数组,如:

[{
    "box": "box1",    
    "parent": [{
        "id": "box0"
    }],
    "child": [{
        "id": "box2"
    }]
},{
    "box": "box2",
    "parent": [{
        "id": "box1"
    }],
    "child": [{
        "id": "box3"
    },{
        "id": "box4"
    }]
}]

现在假设我要更改parent的值id box2,然后我该怎么做。

如何具体更改特定值?

2 个答案:

答案 0 :(得分:1)

var arr = [{
  'box': 'box1',
  'parent': [{
    'id': 'box0'
  }],
  'child': [{
    'id': 'box2'
  }]
}, {
  'box': 'box2',
  'parent': [{
    'id': 'box1'
  }],
  'child': [{
    'id': 'box3'
  }, {
    'id': 'box4'
  }]
}];

arr = arr.map(function(box) {
   if (box.box === 'box2') {
     box.parent = [{ id: 'box0' }];
   }
  
   return box;
      
});

console.log(arr);

答案 1 :(得分:0)

您可以将此JSON字符串反序列化为javascript对象,修改对象中的属性,然后将javascript对象序列化为JSON字符串:

var json = '[{"box":"box1","parent":[{"id":"box0"}],"child":[{"id":"box2"}]},{"box":"box2","parent":[{"id":"box1"}],"child":[{"id":"box3"},{"id":"box4"}]}]';
var obj = JSON.parse(json);
obj[1].parent[0].id = "whatever";
var newjson = JSON.stringify(obj);