47

我需要格式化一个大的 JSON 文件以提高可读性,但我发现的每个资源(主要是在线资源)都不能处理超过 1-2 MB 的数据。我需要格式化大约 30 MB。有什么方法可以做到这一点,或者有什么方法可以编写代码来做到这一点?

4

3 回答 3

97

使用 python >= 2.6,您可以执行以下操作:

对于 Mac/Linux 用户:

cat ugly.json | python -mjson.tool > pretty.json

对于 Windows 用户(感谢dnk.nitro的评论):

type ugly.json | python -mjson.tool > pretty.json
于 2013-11-09T11:17:24.827 回答
34

jq可以在几秒钟内格式化或美化一个 ~100MB 的 JSON 文件:

jq '.' myLargeUnformattedFile.json > myLargeBeautifiedFile.json

上面的命令将在约 10 秒内美化一个约 120MB 的单行文件,jq 为您提供了许多除了简单格式化之外的 json 操作功能,请参阅他们的教程

于 2019-01-29T11:13:14.960 回答
7

jsonpps是唯一对我有用的(https://github.com/bazaarvoice/jsonpps)。
与我尝试过的 jq、jsonpp 和其他人不同,它不会将所有内容加载到 RAM 中。

关于安装和使用的一些有用提示:

下载地址: https ://repo1.maven.org/maven2/com/bazaarvoice/jsonpps/jsonpps/1.1/jsonpps-1.1.jar

快捷方式(适用于 Windows):

  1. 在同一目录中 创建文件jsonpps.cmd ,内容如下:
    @echo off java -Xms64m -Xmx64m -jar %~dp0\jsonpps-1.1.jar %*

快捷方式使用示例:

  1. 将标准输入格式化为标准输出:
    echo { "x": 1 } | jsonpps
  2. 将标准输入格式化为文件
    echo { "x": 1 } | jsonpps -o output.json
  3. 将文件格式化为文件:
    jsonpps input.json -o output.json
于 2020-07-18T11:26:16.357 回答