2

我有一个字符串,像这样:

sometext{"points":{"point":[{"lat":"55.68705772049725","lon":"21.127218855544925"},{"lat":"55.68714472465217","lon":"21.127141742035747"},{" lat":"55.6871934235096","lon":"21.12712439149618"},{"lat":"55.68733625113964","lon":"21.127151465043426"},{"lat":"55.68751168437302","768437302","768437302","lon":"21.127151465043426"} },{"lat":"55.687646800652146","lon":"21.127120200544596"},{"lat":"55.68781033158302","lon":"21.127034788951278"},{"lat":"55.6879814900458" :"21.12691568210721"}]}}一些文本

regex提取物JSON可以吗Javascript

PS我得到了很多数据并将其加入到字符串中。所以我需要从该字符串中获取 json,因为可能有第一个对象的结尾和其他对象的开头

4

2 回答 2

5

假设您在 JSON 部分之外没有大括号,并且假设编码的内容是您的示例中的对象(不是数组),那么您可以这样做

var obj = JSON.parse(s.match(/({.*})/)[1]);

如果外面有大括号,则必须寻找一种更可靠的方法来检测 JSON 部分的开始和结束。

于 2013-07-26T08:16:15.823 回答
1
var str = 'sometext{"points":{"point":[{"lat":"55.68705772049725","lon":"21.127218855544925"},{"lat":"55.68714472465217","lon":"21.127141742035747"},{"lat":"55.6871934235096","lon":"21.12712439149618"},{"lat":"55.68733625113964","lon":"21.127151465043426"},{"lat":"55.68751168437302","lon":"21.12717761658132"},{"lat":"55.687646800652146","lon":"21.127120200544596"},{"lat":"55.68781033158302","lon":"21.127034788951278"},{"lat":"55.687981490045786","lon":"21.12691568210721"}]}}sometext';

var object = JSON.parse(str.match(/({.*})/).pop());
于 2013-07-26T08:20:01.507 回答