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

Posted

技术标签:

【中文标题】Javascript:如何直接从对象生成格式化的易于阅读的 JSON? [复制]【英文标题】:Javascript: How to generate formatted easy-to-read JSON straight from an object? [duplicate] 【发布时间】:2011-03-31 17:46:15 【问题描述】:

可能重复:How can I beautify JSON programmatically?

我知道如何使用 JSON.stringify 从对象生成 JSON,或者在我的例子中是来自 google 代码 (https://github.com/krinkle/jquery-json) 的方便的 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 或其他任何东西。

【问题讨论】:

也许这会有所帮助:jsoneditoronline.org 现在您知道为什么许多人更喜欢 XML 而不是 JSON。它更具可读性。 【参考方案1】:

JSON.stringify 需要更多 optional arguments。

试试:

 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

发件人:

How can I beautify JSON programmatically?

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

【讨论】:

鉴于 OP 用"e":[1,2] 全部在一行上写了他的美化版本,这个答案是不是有点不准确?是否可以将缩进和非缩进 JSON 与 stringify 混合使用? 记得把它放在像
 这样的东西里面来换行。

以上是关于Javascript:如何直接从对象生成格式化的易于阅读的 JSON? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript打印JSON对象 - 树形结构输出 - 格式化JSON数组 - JS从一维数组 生成树形结构对象

JavaScript打印JSON对象 - 树形结构输出 - 格式化JSON数组 - JS从一维数组 生成树形结构对象

如何从 javascript 变量中删除对象/数组?

ThinkPHP的易忽视点小结

JavaScript 递归的几种写法

别人给的易语言源码来我自己改了下静态编就自动加壳了?