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

标签 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"}'

有没有办法在每一行上执行这种转换?

最佳答案

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

"{"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/

相关文章:

javascript - JavaScript 中的 "x = x || {}"技术是什么——它如何影响这个 IIFE?

javascript - 验证表单中的电子邮件后的操作

json - POST 字典为 JSON

java - 单击列表时复制微调器数据

javascript - 当我将鼠标悬停在另一个图像上时使图像可见

javascript - 如果 JavaScript 是同步的,Node.js 是如何构建为异步的?

php - 如果内容发生变化,自动刷新 JS 数组?

ios - JSON解析内容,结果不可读,如 ""\U5b9d\U4e3 0""

javascript - 使用JavaScript 巧妙处理ColdFusion 9 序列化的查询数据?

json - 在golang中解析JSON的一部分