javascript - JSON.parse 给出字符串中换行符的异常

标签 javascript json node.js string

我得到以下字符串:

var str='{"message":"hello\nworld"}';

我需要将其转换为 JSON 对象。但是,由于 \n

,当我尝试 JSON.parse(str) 时出现异常

我看到了this问题,但没有帮助。

由此,我尝试了 var j=JSON.parse(JSON.stringify(str))

但是当我使用 typeof j

时,我仍然得到字符串而不是对象

我知道使用 \\n 是可行的,但问题是,当我需要使用该值时,它不会在新行上打印。

更新:好的,我刚刚意识到 \\n 正在工作。 我正在使用它来将 \n 转换为 \\n:

var str='{"message":"hello\nworld"}';
str=str.replace(/\n/g, "\\\\n").replace(/\r/g, "\\\\r").replace(/\t/g, "\\\\t");

var json=JSON.parse(str);

console.log(json.message);

有人可以更正一下吗?

最佳答案

\n 转义为 \\n 是正确的做法。在您的代码中,替换调用做错了。你需要更少的斜杠。更新了您的代码:

var str='{"message":"hello\nworld"}';
str=str.replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t");

var json=JSON.parse(str); //No errors due to escaping

现在打印它,您会看到文本被分成不同的行。

console.log(json.message);

关于javascript - JSON.parse 给出字符串中换行符的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37810964/

相关文章:

javascript - Web组件稳定后如何添加样式?

php - 动态生成的文件上传控件<使用javascript>无法发布?

c# - 为什么 JSON 空字符串在服务器端反序列化为 null?

jquery - Ajax 和 Places API 获取请求

json - djangorest框架json序列化器

node.js - 带有 promise 的 Node 程序没有完成

javascript - Object.keys() 在 Internet Explorer 9 中是否适用于内置对象?

javascript - 如何知道 upsert 是否成功以及是否可以获得更新/新插入文档的 _id

javascript - 将变量值传递给客户端并将其存储在全局变量中

javascript - 在 ul 列表中添加 div 元素