如何解析JSON中以字符串形式发送的POINT对象?

时间:2019-06-01 03:43:01

标签: javascript json string object

我正在从API中获取一些数据,响应中包括经度和纬度的用户位置。

这是根据用户的坐标在地图上渲染图标

那是JSON对象:

{
  ...
  "lonlat": "POINT (-42.796763 -5.077056)",
}

我希望能够解析此POINT对象并获得纬度和经度的值。

3 个答案:

答案 0 :(得分:3)

您可以替换除space, digits and - and decimaltrim leading and trailing whitespace然后split on space以外的所有值

[^\d .-]
  • [^ \ d .-]-匹配digit, space, . and -以外的任何内容

const data = {
  "lonlat": "POINT (-42.796763 -5.077056)"
};

let [lat,lng] = data.lonlat.replace(/[^\d .-]/g,'').trim().split(/\s+/)
console.log(lat);
console.log(lng);

答案 1 :(得分:2)

您可以使用正则表达式来获取值,前提是它们始终由空格分隔。

SKScenes

答案 2 :(得分:1)

您可以尝试首先在括号之间获取字符,如下所示:

var obj = {
  "lonlat": "POINT (-42.796763 -5.077056)",
}
var regExp = /\((.*?)\)/;
var lonlat = obj.lonlat.match(regExp)[1].split(' ');
console.log(lonlat);