【问题标题】:Best way to format large JSON file? (~30 mb)格式化大型 JSON 文件的最佳方法? (~30 mb)
【发布时间】:2013-11-09 11:08:04
【问题描述】:

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

【问题讨论】:

  • 您只需要阅读它吗?或者您想在将输出发送给客户端之前对其进行格式化?

标签: json data-processing


【解决方案1】:

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

对于 Mac/Linux 用户:

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

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

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

【讨论】:

  • 经过此处理后,我可以使用 Visual Studio 轻松打开和浏览 12 MB JSON。
  • 47MB 文件在此之后可在 VSC 中完全搜索。
  • Windows 用户:type ugly.json | python -mjson.tool > pretty.json
  • 唯一对我有用的 900 MB JSON 文件。不过花了一段时间!
  • 这太棒了
【解决方案2】:

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

jq '.' myLargeUnformattedFile.json > myLargeBeautifiedFile.json

上面的命令会在~10秒内美化一个~120MB的单行文件,jq除了简单的格式化之外,还为你提供了很多json操作能力,见their tutorials

【讨论】:

  • 它将所有内容加载到 RAM 中
  • 在 100MB 文件上运行良好,但在 900MB 文件上运行良好。 :(
  • 在 Windows 中,我必须使用“。”而不是'.'
  • 这对我来说是一个 172MB 的文件,而 Visual Studio Code 只是直盯着我说“我不会这样做,它太大了。”当我要求它“格式化”文档时。谢谢!
  • 另一个窗口示例:输入 big_unformatted.json | c:\path_to_jq\jq-win64.exe > big_formatted.json
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多