将对象数组转换为对象

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 只有一个对象 - 我收到带有命名键的对象,一切正常。

你可以reduceJSON.parse给出的数组赋给单个对象:

var result = parsed.reduce(function (output, value) {
    return $.extend(output, value);
}, {});

JSFiddle