Transform json Массив для использования в качестве маркера карты Google - PullRequest
0 голосов
/ 08 февраля 2020

Я новичок ie и работаю так, как я счастлив, чтобы получить все идеи, которые я могу. У меня есть внешняя система, которая отправляет мне этот json файл

[149.9900000, -33.8900000, \ "Hume Hwy, Table Top \"], [151.5400000, -33.0400000, \ "Newport Rd, Dora Creek \ "]

Я не уверен, как я могу преобразовать это в нечто вроде

{"markers":[{"name":"Hume Hwy, Table Top","position":[149.9900000,-33.8900000],},{"name":"Newport Rd, Dora Creek","location":[151.5400000,-33.0400000]}}]}

, чтобы я мог использовать его в Google Maps.

Ура Ник

1 Ответ

0 голосов
/ 08 февраля 2020

Учитывая, что ваш сервер отправляет правильную структуру JSON, вы можете проанализировать строку для объекта, используя JSON.parse в браузере, выполнив JSON.parse(response).

Я предполагаю, что ваш сервер отправляет;

"[[149.99,-33.89,\"Hume Hwy, Table Top\"],[151.54,-33.04,\"Newport Rd, Dora Creek\"]]", который является многомерным правильным json ответом.

Мы можем проанализировать этот ответ и затем правильно отобразить ответ в требуемый объект, поэтому;

  • Parse ответ:
const parsedMarkerData = JSON.parse("[[149.99,-33.89,\"Hume Hwy, Table Top\"],[151.54,-33.04,\"Newport Rd, Dora Creek\"]]");
  • Преобразовать в нужную вам структуру:
const markers = [];
for(const marker of parsedMarkerData){
  // destructuring the array
  const [x, y, name] = marker;
  // putting into object
  markers.push({
    name, position: [x, y]
  });
}
  • Объединение ответа в объект с ключом маркера:
const finalObject = { markers };

Наконец, finalObject содержит необходимую вам структуру, которую можно использовать в картах Google.

Установите этот флажок codesandbox , чтобы просмотреть все работающие части вместе.

...