我得到了以下字符串:
var str='{"message":"hello\nworld"}';
我需要将其转换为JSON对象。然而,当我尝试使用 JSON.parse(str)
时,由于 \n
导致了异常。
我看到了这个问题,但没有帮助。
从那里,我尝试了
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
是正确的,假设你想让"message"
包含一个新的换行符,因为换行本身在JSON中是无效的。 - James Thorpej.message
为undefined
。 - James Thorpe\\n
?正如我之前提到的,JSON值中的换行符在第一位就是无效的,因此提供给你该JSON输出的任何内容都是不正确的。一旦你解决了这个问题,就可以继续解决其他问题,比如在你遇到问题的地方正确显示换行符。 - James Thorpe