要映射的javascript对象

要映射的javascript对象,javascript,map,javascript-objects,Javascript,Map,Javascript Objects,我有一张物品清单 { "list": { "item": [ { "id": "12", "value": "abc" }, { "id": "34", "value": "pqr" } ] } } 想把它转换成地图吗 {"12": "abc", "34","pqr"} 最简单的方法是什么?for循环是最简单的方法: var result = {}; for

我有一张物品清单

{
  "list": {
    "item": [
      {
        "id": "12",
        "value": "abc"
      },
      {
        "id": "34",
        "value": "pqr"
      }
    ]
  }
}
想把它转换成地图吗

{"12": "abc", "34","pqr"}

最简单的方法是什么?

for
循环是最简单的方法:

var result = {};
for (var i = 0; i < obj.list.item.length; i++) {
    result[obj.list.item[i].id] = obj.list.item[i].value;
}
console.log(result);
var result={};
对于(变量i=0;i
在数组或列表中使用php中的jsondecode或c中的jsondecode进行转换,并使用反序列化类进行转换(http://stackoverflow.com/questions/2546138/deserializing-json-data-to-c-sharp-using-json-net)


像这样的事情就可以了…

我会这样做:

function map(list, key, value){
    var result = {};
    for(i in list){
        result[list[i][key]] = list[i][value];
    }
    return result;
}
map(list["list"]["item"],"id","value")
然后用你的目标:

var list =  {
  "list": {
    "item": [
      {
        "id": "12",
        "value": "abc"
      },
      {
        "id": "34",
        "value": "pqr"
      }
    ]
  }
}
我可以这样调用函数:

function map(list, key, value){
    var result = {};
    for(i in list){
        result[list[i][key]] = list[i][value];
    }
    return result;
}
map(list["list"]["item"],"id","value")
它将返回: { 12.“abc”, 34:“pqr”
}

是否应该是
{12”,“abc”,“34”,“pqr”}
{12:“abc”,“34:“pqr”}
?你能纠正吗?尝试在每个对象上迭代,甚至是数组.map(函数)。想知道有没有更简单的方法我注意到你没有接受我的答案,有什么不对吗?我想知道是什么,所以我可以进一步改进它,谢谢教授,我试着围绕问题和答案采取一些行动。这个问题被标记为JavaScript。因此,PHP和C#都不是有效的解决方案。