将对象数组转换为对象
Convert array of objects into object
正在尝试使用 Mapael Jquery 插件。
插件需要对象来绘制地图元素。
我的PHP代码returnjson编码的对象数组:
[{
"Aveiro":{
"latitude":40.6443,
"longitude":-8.6455,
"value":10,
"tooltip":{
"content":"test"
}
}
},{
"Lisbon":{
"latitude":38.7167,
"longitude":-9.1333,
"value":10,
"tooltip":{
"content":"test"
}
}
},{
"Entroncamento":{
"latitude":39.2333,
"longitude":-9.0833,
"value":10,
"tooltip":{
"content":"test"
}
}
}]
如果我通过 json.parse
解析此数组,我将收到带有数字键的对象,在我的示例中 [0]->[Aveiro],[1]->[Lisbon],[2]->[Entroncamento]
。
如何在没有数组索引的情况下拥有带有键 [Aveiro],[Lisbon],[Entroncamento]
的对象?
如果我 return 只有一个对象 - 我收到带有命名键的对象,一切正常。
你可以reduce
将JSON.parse
给出的数组赋给单个对象:
var result = parsed.reduce(function (output, value) {
return $.extend(output, value);
}, {});
正在尝试使用 Mapael Jquery 插件。 插件需要对象来绘制地图元素。
我的PHP代码returnjson编码的对象数组:
[{
"Aveiro":{
"latitude":40.6443,
"longitude":-8.6455,
"value":10,
"tooltip":{
"content":"test"
}
}
},{
"Lisbon":{
"latitude":38.7167,
"longitude":-9.1333,
"value":10,
"tooltip":{
"content":"test"
}
}
},{
"Entroncamento":{
"latitude":39.2333,
"longitude":-9.0833,
"value":10,
"tooltip":{
"content":"test"
}
}
}]
如果我通过 json.parse
解析此数组,我将收到带有数字键的对象,在我的示例中 [0]->[Aveiro],[1]->[Lisbon],[2]->[Entroncamento]
。
如何在没有数组索引的情况下拥有带有键 [Aveiro],[Lisbon],[Entroncamento]
的对象?
如果我 return 只有一个对象 - 我收到带有命名键的对象,一切正常。
你可以reduce
将JSON.parse
给出的数组赋给单个对象:
var result = parsed.reduce(function (output, value) {
return $.extend(output, value);
}, {});