![](/img/trans.png)
[英]JSON.parse can't recognize \" (backslash and quote) in string to parse
[英]Can't parse string with JSON.parse
我有以下代码,该代码在换行符上拆分一个字符串,然后在每一行上调用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, ",")+"]");
这样做用逗号替换了换行符的每个序列,并将结果行包装在数组文字中,因此您可以遍历新的新数组。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.