我从服务器获取以下GeoJSON:
[{“ st_asgeojson”:“ {\” type \“:\” Point \“,\” coordinates \“:[-180081.82,5279725.36]}”}]
如何获取坐标字段?我将GeoJSON存储在 geovar 变量
中我尝试使用geovar["st_asgeojson"].coordinates
,geovar[0]["st_asgeojson"].coordinates
,geovar[0]["st_asgeojson"]["coordinates"]
,但它们似乎未定义。
有什么主意吗?我知道这很简单,但我坚持下去。谢谢。
答案 0 :(得分:0)
"st_asgeojson"
的值现在是一个字符串。您需要先将其解析为JSON,然后才能对其进行访问。使用map
遍历并用"st_asgeojson"
解析JSON.parse
的值
const geovar = [{"st_asgeojson":"{\"type\":\"Point\",\"coordinates\":[-180081.82,5279725.36]}"}]
const rs = geovar.map(e => {
e["st_asgeojson"] = JSON.parse(e["st_asgeojson"])
return e
})
console.log(rs[0]["st_asgeojson"]["coordinates"])
console.log(rs)
答案 1 :(得分:0)
好吧,我终于解决了这个问题:
[{“ st_asgeojson”:“ {\” type \“:\” Point \“,\” coordinates \“:[-180081.82,5279725.36]}”}]
是内部带有GeoJSON的JSON。在解析GeoJSON之前,我必须从已经解析的JSON中获取GeoJSON字符串。唯一必要的指示是:</ p>
var obj = JSON.parse(geovar[0]["st_asgeojson"]);
var coordinates = obj.coordinates;
答案 2 :(得分:-1)
您从服务器获取的是JSON字符串数据。如果要解析,请首先使用JSON.stringify()函数生成JSON。希望能解决您的问题。之后,您可以轻松地根据需要解析数据。