0

我有一个这样的 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(created object.)

所以现在我有

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

在这之后我有

someId = someId

对错误感到抱歉。更新 !!!!!!!!!!

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

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

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

谢谢。

4

2 回答 2

0

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

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您的键中缺少双引号。

于 2013-11-06T14:14:54.807 回答
0

在纯 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]);
  }
}
于 2016-09-22T11:30:17.500 回答