格式化输出 JSON

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了格式化输出 JSON相关的知识,希望对你有一定的参考价值。

参考技术A

JSON.stringify() 是将 javascript 对象转换为 JSON 的规范方法。有许多 JavaScript 框架在内部都使用了 JSON.stringify() ,比如 Express 框架的 res.json() 和 Axios body 序列化。

但是,默认情况下, JSON.stringify() 输出的 JSON 格式,不带空格或颜色。在后面,我们将使用一个常用的 npm 包来丰富输出数据的色彩。

JSON.stringify() 基本用法如下:

可以看到,我们使用 JSON.stringify() 输出的内容更具可读性。

你也可以传入一个 "\\t" 制表符间距,格式化输出的数据。

JSON.stringify 的第三个参数用于控制间距。正是它提供了漂亮的字符串输出。

它允许两种类型的参数: Number 和 String 。

如果 Space 是一个 Number 类型,则表示 JSON.stringify 将在每个键之前放置的相应的空格数。可以使用 0 到 10 之间的任意数字作为缩进。

或者,可以使用字符串作为缩进。最多允许10个字符。如果您尝试传递超过10个字符,它将只使用前10个字符。

对于不直接调用 JSON.stringify() 的框架,通常有一个设置 spaces 参数的选项。例如,Express 有一个全局 \'json spaces\' 选项 ,允许您为所有 res.json() 调用设置 spaces 。

Axios 没有设置 JSON 格式的 显式选项 ,但您可以使用 transformRequest 选项 自行处理 JSON 序列化。关键语法如下:

Prettyjson 以 YAML 样式格式化 JSON 数据。Prettyjson 仅在 CLI 上工作,如果将 Prettyjson 输出作为 HTTP 响应发送,则无法获得颜色。

下面是使用 Prettyjson 从 Node.js 打印 JSON 的示例:

效果如下:

您应该使用以上这类方法来使你想要突出显示的数据以提高可读性。

这里我们额外在说一下 JSON.stringify 的第二个参数 replacer ,我们可以使用它来转换结果。

它允许两种类型的参数: Array 和 Function 。

我们为每一项调用一次 function ,你也可以循环每一项,并在每次传递时使用函数中定义的逻辑进行操作。

下面是一个示例,我跳过了值不是字符串的属性。换句话说,我只想显示值为数字的项。

Python格式化输出json

参考文档:

Python JSON

 

JSON 函数

使用 JSON 函数需要导入 json 库:import json

函数描述
json.dumps  将 Python 对象编码成 JSON 字符串
json.loads 将已编码的 JSON 字符串解码为 Python 对象

json.dumps

json.dumps 用于将 Python 对象编码成 JSON 字符串。

实例

以下实例将数组编码为 JSON 格式数据:

#!/usr/bin/python
import json

data = [ { a : 1, b : 2, c : 3, d : 4, e : 5 } ]

json = json.dumps(data)
print json

以上代码执行结果为:

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

使用参数让 JSON 数据格式化输出:

>>> import json
>>> print json.dumps({a: Runoob, b: 7}, sort_keys=True, indent=4, separators=(,, : ))
{
    "a": "Runoob",
    "b": 7
}

 

以上是关于格式化输出 JSON的主要内容,如果未能解决你的问题,请参考以下文章

python json.dumps()函数输出json格式,使用indent参数对json数据格式化输出

如何格式化Json输出? [复制]

Python格式化输出JSON

Python格式化输出json

如何在 Ruby on Rails 中“漂亮”地格式化 JSON 输出

格式化json内容输出[重复]