迭代JSON数组并将其值分配给object。 JavaScript的

时间:2013-11-06 13:57:47

标签: json for-loop

我有像这样的JSON数组

[ {"id": "someId", "name": "someName", "other": "other"}, {"id": "someId1", "name": "someName1", "other": "other1"} ]

我需要迭代它以检索键:值对并将其分配给对象。我需要它,因为我不需要一些元素,我想要一些造型。

所以,经过这次操作后,我希望:

id=someId
name=someName
other=other
id=someId1
name=someName1
other=other1

我将在JSON.stringify(创建对象。)

之后使用它

所以现在我有

var data = {};
for(var i = 0; i < docs.length; i++){
    data[docs[i]._id] = docs[i]._id;
}
console.log(data);

此后我有

someId = someId

抱歉错误。 更新!!!!!!!!!!

所以JSON只是一个样本。从mongodb返回真正的JSON,这就是它有效的原因。

在for循环中我有: data[docs[i]._id] = docs[i]._id; 并返回 someId = someId 但是我需要 id = someId

所以我不能将循环中的键分配给对象,因为它取代了值。

感谢。

2 个答案:

答案 0 :(得分:0)

我完全不确定你想要什么,但如果你想迭代你的json对象数组,那么你可以像这样使用jQuery的.each

var arr = [ 
    {'id': 'someId', 'name': 'someName', 'other': 'other'}, 
    {'id': 'someId1', 'name': 'someName1', 'other': 'other1'} 
 ];

$(arr).each(function(index,elem){
     console.log(elem.Id);
     console.log(elem.name);
     console.log(elem.other);

    //or watever you want to do with the values
});

此外:确保您的json对象有效。在第二个json对象中,你的密钥name缺少双引号。

答案 1 :(得分:0)

在Plain JavaScript中,您可以编写类似如下的内容

 var arr = [ 
    {'id': 'someId', 'name': 'someName', 'other': 'other'}, 
    {'id': 'someId1', 'name': 'someName1', 'other': 'other1'} 
 ];



 //plain javascript for in loop
 for ( var key in arr){     
  var nodes = arr[key]
  // get to the nested obj
    for(var innernodes in nodes){
    console.log(innernodes + ' : ' + nodes[innernodes]);
  }
}