格式化大型JSON文件的最佳方法?(〜30 mb)

cov*_*nce 10 json data-processing

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

jmn*_*mng 28

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

jq '.' myLargeUnformattedFile.json > myLargeBeautifiedFile.json
Run Code Online (Sandbox Code Playgroud)

上面的命令将在~10秒内美化一个~120MB的单行文件,jq为你提供了很多超越简单格式化的json操作能力,参见他们的教程

  • 这对我来说适用于 172MB 的文件,而 Visual Studio Code 却直视着我的脸说:“我不会这样做,它太大了。” 当我要求它“格式化”文档时。谢谢! (3认同)
  • 如果有人复制粘贴大型 JSON 并想要跳过文件,可以运行 `get-clipboard | jq“.” | 在 PowerShell 中设置剪贴板 (3认同)
  • 它将所有内容加载到 RAM 中 (2认同)
  • 在 Windows 中,我必须使用“。” 代替 '。' (2认同)

pst*_*ler 16

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

cat ugly.json | python -mjson.tool > pretty.json
Run Code Online (Sandbox Code Playgroud)

  • 经过此处理后,我可以使用 Visual Studio 轻松打开并浏览 12 MB JSON。 (2认同)
  • 对于 Windows 用户:`输入ugly.json | python -mjson.tool > Pretty.json` (2认同)
  • 我不确定为什么所有 Windows pythons 命令在 -m 和 json 之间没有空格。只有这个对我有用:`typeugly.json | python -m json.tool > Pretty.json` (powershell) (2认同)

nic*_*nko 9

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