var string = "{lat: -31.563910, lng: 147.154312};{lat: -33.718234, lng: 150.363181};{lat: -33.727111, lng: 150.371124}"
var array = string.split(';');
结果:
var array = [
"{lat: -31.563910, lng: 147.154312}",
"{lat: -33.718234, lng: 150.363181}",
"{lat: -33.727111, lng: 150.371124}"
]
尝试使用JSON.parse(array);
但收到SyntaxError
我想要实现的数组看起来像这样:
var array = [
{lat: -31.563910, lng: 147.154312},
{lat: -33.718234, lng: 150.363181},
{lat: -33.727111, lng: 150.371124}
]
答案 0 :(得分:-1)
试试这个
string = string
.replace(/lat/g, '"lat"')
.replace(/lng/g, '"lng"')
.replace(/;/g, ',')
JSON.parse('[' + string + ']')
这是如何运作的?
replace
用于在密钥周围添加引号replace
用于将分号转换为逗号[...]
中,因此有效的json 正如评论中所提到的,如果该字符串格式正确的JSON,您可以简单地解析它。因此,如果您可以控制该字符串的生成方式,那么最好将其修复。
答案 1 :(得分:-2)
你快到了。您希望通过函数array
运行JSON.parse()
中的每个值以获取javascript值。
array[z] = JSON.parse(array[z]);
编辑:虽然您的json格式不正确。