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

2022-01-12 00:00:00 json formatting pretty-print javascript

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

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

I know how to generate JSON from an object using JSON.stringify, or in my case the handy jquery-json from google code (https://github.com/krinkle/jquery-json).

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

Now this works fine, but the output is hard to read for humans. Is there an easy way / function / whatever to output a neatly formatted json file?

这就是我的意思:

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]
 }
}

例如添加了换行符和标签.较大的文档更容易阅读.

E.g. with newlines and tabs added. It's much easier to read for larger documents.

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

I'd like to do this ideally without adding any huge libraries - e.g. not prototype or YUI or whatever.

推荐答案

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, "	"); // Indented with tab

发件人:

如何以编程方式美化 JSON?

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

Should work in modern browsers, and it is included in json2.js if you need a fallback for browsers that don't support the JSON helper functions. For display purposes, put the output in a <pre> tag to get newlines to show.

相关文章