Javascript:如何直接从对象生成格式化的易于阅读的 JSON?

IT技术 javascript json formatting pretty-print
2021-03-08 22:05:42

可能的重复:
如何以编程方式美化 JSON?

我知道如何使用 JSON.stringify 从对象生成 JSON,或者在我的情况下使用来自谷歌代码的方便的 jquery-json ( https://github.com/krinkle/jquery-json )。

现在这工作正常,但输出对于人类来说很难阅读。是否有一种简单的方法/功能/任何方式来输出格式整齐的 json 文件?

这就是我的意思:

JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}); 

给..

"{"a":1,"b":2,"c":{"d":1,"e":[1,2]}}"

我想要这样的东西:

{
 "a":1,
 "b":2,
 "c":{
    "d":1,
    "e":[1,2]
 }
}

例如,添加了换行符和制表符。阅读较大的文档要容易得多。

我想在不添加任何庞大的库的情况下理想地做到这一点 - 例如不是原型或 YUI 或其他任何东西。

1个回答

JSON.stringify需要更多的可选参数

尝试:

 JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}, null, 4); // Indented 4 spaces
 JSON.stringify({a:1,b:2,c:{d:1,e:[1,2]}}, null, "\t"); // Indented with tab

从:

如何以编程方式美化 JSON?

应该在现代浏览器中工作,如果您需要不支持 JSON 辅助函数的浏览器的回退,它包含在json2.js 中出于显示目的,将输出放在<pre>标签中以显示换行符。

鉴于 OP"e":[1,2]在一行上写了他的美化版本,这个答案是不是有点不准确是否可以将缩进和非缩进的 JSON 与 stringify 混合使用?
2021-05-01 22:05:42
只要记住把它放在诸如 <pre> 之类的东西中以获得新的行。
2021-05-13 22:05:42