无法使用JSON.parse解析字符串

时间:2015-01-16 13:12:01

标签: javascript json

我有以下代码在换行符上拆分字符串,然后在每一行上调用JSON.parse

var lines = [];
var ks = data.split("\n");
_(ks).each(function(line){
    lines.push(JSON.parse(line));
}, this);
return lines;

问题出在分割之后,每一行都是这样的

"{"id":"123","attr1":"abc"}"

然而,为了使JSON.parse能够工作,我的字符串需要包含我的单引号,如

'{"id":"123","attr1":"abc"}'

有没有办法在每一行执行此转换?

1 个答案:

答案 0 :(得分:3)

如果字符串的结构如下......

"{"id":"123","attr1":"abc"}
{"id":"123","attr1":"abc"}
{"id":"123","attr1":"abc"}
{"id":"123","attr1":"abc"}"

...然后,作为单独的JSON解析每一行的更快的替代方法可能是:

JSON.parse("["+data.replace(/^\n+|\n+$/g, "").replace(/\n+/g, ",")+"]");

这样做会用逗号替换每个新行序列,并将结果行包装在数组文字中,这样你就有了一个全新的数组来迭代。 :)