如何使用Javascript从GeoJSON获取字段

时间:2019-03-26 08:24:45

标签: javascript json parsing geojson

我从服务器获取以下GeoJSON:

  

[{“ st_asgeojson”:“ {\” type \“:\” Point \“,\” coordinates \“:[-180081.82,5279725.36]}”}]

如何获取坐标字段?我将GeoJSON存储在 geovar 变量

我尝试使用geovar["st_asgeojson"].coordinatesgeovar[0]["st_asgeojson"].coordinatesgeovar[0]["st_asgeojson"]["coordinates"],但它们似乎未定义。

有什么主意吗?我知道这很简单,但我坚持下去。谢谢。

3 个答案:

答案 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。希望能解决您的问题。之后,您可以轻松地根据需要解析数据。