如何使用\ r \ n打印JSON字符串化字符串?

时间:2018-04-21 00:17:38

标签: javascript json

我得到这个对象:{a:"a\r\na", b:"b\r\nb"}。我使用JSON.stringify()从对象创建一个字符串,但是我得到的输出是:

"{

  "a": "a\r\na",

  "b": "b\r\nb"

}"

我真正想要的是:

"{

  "a": "a


a",

  "b": "b

b"

}"

我该怎么做?

2 个答案:

答案 0 :(得分:0)

mozilla文档(请参阅" Issue with plain JSON.stringify for use as JavaScript")似乎直接解决了这个问题:

function jsFriendlyJSONStringify (s) {
return JSON.stringify(s).
    replace(/\u2028/g, '\\u2028').
    replace(/\u2029/g, '\\u2029');
}

<强>更新

在下面的OP和贡献者的帮助下,

function jsFriendlyJSONStringify (s) {
return JSON.stringify(s).
    replace(/\\r/g, '\r').
    replace(/\\n/g, '\n')
}

提供了更通用的解决方案。

答案 1 :(得分:0)

这实际上取决于您显示这些值的浏览器,编辑器或文本字段。如果您在网站上显示,则可以用<br>替换CR / LF。

此外,Windows在MS Office Excel文件中使用CR / LF,而Mac上的MS Office Excel仅使用\n(新行)。

tl; dr:您无法在不更改实际内容的情况下更改显示“样式”。