【发布时间】:2016-06-14 11:39:53
【问题描述】:
我得到以下字符串:
var str='{"message":"hello\nworld"}';
我需要把它变成 JSON 对象。但是,当我尝试JSON.parse(str) 时出现异常,因为\n
我看到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);
有人可以改正吗?
【问题讨论】:
-
为什么不使用
<br/>标签? -
“我知道使用
\\n有效,但问题是,当我需要使用该值时,它不会在新行上打印。” 这是你的部分需要修复 -\\n在这里是正确的,假设您希望"message"包含一个新行,因为新行本身在 JSON 中无效。 -
@PawanNogariya 它是一个字符串,我没有使用它形成 html 标签。我正在我的网络服务中获取数据。
-
@JamesThorpe,console.log(j.message) 不会在新行上打印它
-
我确实将它打印在 cosole 的新行中,请参阅这个小提琴 jsfiddle.net/s8d8k3on
标签: javascript json node.js string