我有以下代码,它在换行符上拆分字符串,然后在每一行上调用 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"}'
有没有办法在每一行上执行这种转换?
最佳答案
如果字符串的结构如下...
"{"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, ",")+"]");
这样做会用逗号替换每个换行符序列,并将结果行包装在数组文字中,这样您就可以迭代一个全新的数组。 :)
关于javascript - 无法使用 JSON.parse 解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27984719/