我试图将一大块坐标(lat / lng)转换为一个没有运气的json对象。我希望每一行成为一对。
我有一个看起来像这样的字符串(+ 200 ish行)
67.8574074243696,20.2120303794714
67.8570072289646,20.2137432009361
67.8562768208083,20.2153228755138
67.8558962489713,20.216419476191
我想将它转换为一个看起来像这样的json对象:
[
{
"lat": xx.xxxxx,
"lng": xx.xxxxxxx
},
{
"lat": xx.xxxxx,
"lng": xx.xxxxxxx
}
]
答案 0 :(得分:0)
你可以逐行阅读并传递给这个函数:
function parseCoordinates(coordinates){
var tmpCoord = coordinates.split(',');
return ({ 'lat': tmpCoord[0], 'lng': tmpCoord[1] });
}
var coords = array();
coords.push(parseCoordinates(lines1);
coords.push(parseCoordinates(lines2);
或者,如果真正的块是例如变量名称是块的变量,你可以简单地做这样的事情:
首先将大块分成几行:
var lines = chunk.match(/[^\r\n]+/g);
然后循环并调用上一个函数。
var coords = array();
for(var i = 0; i< lines.length; i++){
coords.push(parseCoordinates(lines[i]);
}
答案 1 :(得分:0)
在我的回答中,我假设你的字符串是一个csv。
你想做类似的事情:
var result = [];
var rows = csv.split('\n');
for(i in rows)
{
var row = rows[i],
values = row.split(',');
result.push({
lat: values[0],
lng: values[1]
});
}
json_result = JSON.stringify(result);
答案 2 :(得分:-1)
var obj = JSON.parse(string);
其中string是你的json字符串。