将字符串转换为json对象

时间:2016-05-26 11:24:24

标签: javascript json

我试图将一大块坐标(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
    }
]

3 个答案:

答案 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);

Source

答案 2 :(得分:-1)

var obj = JSON.parse(string);

其中string是你的json字符串。