-3

我有一个对象列表

{
  "list": {
    "item": [
      {
        "id": "12",
        "value": "abc"
      },
      {
        "id": "34",
        "value": "pqr"
      }
    ]
  }
}

并想将其转换为地图

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

最简单的方法是什么?

4

4 回答 4

2
myObject.list.item.forEach(function(item){
  myMap[item.id] = item.value;
}

像这样的东西会这样做......

于 2013-01-15T12:39:33.660 回答
1

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);
于 2013-01-15T12:38:18.990 回答
1

在 php 中使用 jsondecode 在数组或列表中进行转换,或者在 c# 中使用带反序列化的类进行转换(http://stackoverflow.com/questions/2546138/deserializing-json-data-to-c-sharp-using-json-net)

于 2013-01-15T12:38:36.307 回答
1

我会做这样的事情:

function map(list, key, value){
    var result = {};
    for(i in list){
        result[list[i][key]] = list[i][value];
    }
    return result;
}

然后用你的对象:

var list =  {
  "list": {
    "item": [
      {
        "id": "12",
        "value": "abc"
      },
      {
        "id": "34",
        "value": "pqr"
      }
    ]
  }
}

我可以这样调用函数:

map(list["list"]["item"],"id","value")

它会返回: { 12: "abc", 34: "pqr" }

于 2013-01-21T20:30:05.947 回答