2015-01-08 5 views
1

Попытка работать с плагином Mapael JQuery. Плагин нужен объект для рисования элементов карты.Преобразование массива объектов в объект

Мой PHP код возврата JSON закодированные массив объектов:

[{ 
    "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] без индексов массива?

Если я возвращаю только один объект - я получаю объект с именованным ключом, и все работает отлично.

+1

у вас есть доступ к редактированию кода PHP? если да, то передайте код, который строит этот массив –

+0

@metamarket Я думаю, что вы ищете '$ array = (array) $ yourObject;'. Это даст вам ассоциативный массив. –

ответ

2

Вы можете reduce массив, данное JSON.parse к одному объекту:

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

JSFiddle

+0

Спасибо, Джейми! Все работает! – metamarket