我有以下代码在换行符上拆分字符串,然后在每一行上调用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"}'
有没有办法在每一行执行此转换?
答案 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, ",")+"]");
这样做会用逗号替换每个新行序列,并将结果行包装在数组文字中,这样你就有了一个全新的数组来迭代。 :)