我有一个对象列表
{
"list": {
"item": [
{
"id": "12",
"value": "abc"
},
{
"id": "34",
"value": "pqr"
}
]
}
}
并想将其转换为地图
{"12": "abc", "34","pqr"}
最简单的方法是什么?
我有一个对象列表
{
"list": {
"item": [
{
"id": "12",
"value": "abc"
},
{
"id": "34",
"value": "pqr"
}
]
}
}
并想将其转换为地图
{"12": "abc", "34","pqr"}
最简单的方法是什么?
myObject.list.item.forEach(function(item){
myMap[item.id] = item.value;
}
像这样的东西会这样做......
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);
在 php 中使用 jsondecode 在数组或列表中进行转换,或者在 c# 中使用带反序列化的类进行转换(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;
}
然后用你的对象:
var list = {
"list": {
"item": [
{
"id": "12",
"value": "abc"
},
{
"id": "34",
"value": "pqr"
}
]
}
}
我可以这样调用函数:
map(list["list"]["item"],"id","value")
它会返回: { 12: "abc", 34: "pqr" }