【问题标题】:Transform json Array to use as a google map marker转换 json 数组以用作谷歌地图标记
【发布时间】:2020-02-08 02:48:12
【问题描述】:

我是新手,我很高兴能得到我能得到的所有想法。我有一个外部系统向我发送这个 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]}}]}

这样我就可以在谷歌地图中消费了。

干杯 尼克

【问题讨论】:

  • 您可以从数组中提取单个值并将其添加到您需要的对象中。
  • 对不起,我也不知道怎么办。请你帮忙。
  • 好的,等一下,我会写你的问题的答案。
  • 您的服务器是否发送字符串化的 json 文件?这是一个正确的 json 结构,可以在客户端解析。

标签: javascript arrays json multidimensional-array


【解决方案1】:

考虑到您的服务器发送正确的JSON 结构,您可以做的是在浏览器中使用JSON.parse 通过JSON.parse(response) 将字符串解析为对象。

我假设您的服务器发送;

"[[149.99,-33.89,\"Hume Hwy, Table Top\"],[151.54,-33.04,\"Newport Rd, Dora Creek\"]]",这是一个多维正确的 json 响应。

我们可以解析这个响应,然后将响应正确地映射到您需要的对象中,所以;

  • 解析响应:
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 包含您需要的结构,可以用于谷歌地图。

检查此codesandbox 以查看一起运行的所有部分。

【讨论】:

  • 运气不好,[149.9900000,-33.8900000,"Hume Hwy, Table Top"],[151.5400000,-33.0400000,"Newport Rd, Dora Creek"],[149.2300000,-34.4200000,”奥林匹克高速公路,桌面"] const parsedMarkerData = JSON.parse[mylocation] console.log(parsedMarkerData);控制台显示未定义。我做错了什么?
  • 这样的东西不起作用 var mymarker = JSON.stringify(mylocation); const parsedMarkerData = JSON.parse[mymarker] console.log(parsedMarkerData);
  • Json.parse[] 你是用方括号代替json.parse(),括号?
  • const parsedMarkerData = JSON.parse[mylocation];我已将我的 json 更改为 { "position":[149.9900000,-33.8900000],"Incident":"Hume Hwy, Table Top" }
猜你喜欢
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
  • 2011-03-14
  • 2015-04-12
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多