如何在Ubuntu上漂亮地打印大的JSON文件?

54
我希望听到您对如何在Ubuntu上处理一个大的(40MB)JSON文件的建议。我想要在vimgedit或任何其他编辑器中看到它漂亮地打印出来。可以找到许多关于如何美化JSON的教程,但是它们不必处理大量输入。我还可以通过pygments或任何其他语法高亮器传输数据。我很想听听您的想法。

示例下载:

wget -O large-dataset.json http://data.wien.gv.at/daten/wfs?service=WFS&request=GetFeature&version=1.1.0&typeName=ogdwien:BAUMOGD&srsName=EPSG:4326&outputFormat=json

请注意下载文件的大小!
编辑:我发现meld有些作用。该应用程序不会一次性加载整个文件,从而阻止用户界面。相反,它按顺序读取文件内容。

3
https://dadroit.com/ - Fallen Apart
1
尝试使用munis-pretty-json npm模块,在控制台上使用'less'命令可视化json日志数据。 - Gagan
@FallenApart 自此以来最好的 JSON 查看器 :) - İbrahim
7个回答

75

Python的JSON模块也可以实现这个功能(python -m json.tool),例如:

cat myjsonfile.json | python -m json.tool > pretty.json

2
比Sublime还要快!谢谢。另外,如果你只想预览文件,可以使用| less代替> pretty.json - М.Б.
完美运行 - Rayner

33
如果你只是想要可视化(和搜索)一个json文件,Firefox做得很好。虽然我手头上没有40MB的文件,但它轻松处理了9MB的文件。
只需将JSON文件拖到Firefox中,或运行: firefox your_file.json

1
请记得将文件扩展名保留为.json。 - air4x
无法用于大文件。我有一个大约60MB的文件,Firefox将其显示为文本文件。 - user1991679

27

jq是一个轻量级的命令行JSON处理器,非常好用!如果您使用apt包管理器,可以通过以下命令安装jq。

sudo apt-get install jq

以下命令将会把JSON文件美化并保存到新文件中。

 jq '.' non-pretty.json > pretty.json

此外,我们可以使用jq筛选json文件。我发现在处理大型geojson文件时,它非常有帮助。例如,下面的命令将仅保存第一个feature的属性。


Also we can filter the json with jq, I found it to be very helpful while working with large geojson files, for instance below command will save only properties of first feature.

jq '.features[0].properties' geojson_file.json > pretty.json
希望这会有所帮助!

1
我遇到了UTF-8问题,但是通过使用“python -m json.tool”解决了它。Firefox无法打开大文件,但最终我使用了“jq”。 - Dimetry
搜索了半个小时才找到这样的工具,它是第一个可以处理我 230 MB 的 JSON 文件的工具,谢谢。 - commanderguy3001
jq在处理接近JSON格式的日志时更加强大。Python的json.tool可能会有点过于严格。 - Brendan Cody-Kenny

5

你是否使用KDE或其他可视化环境?如果是,你有尝试使用Chrome扩展程序JSONView吗?


1
我正在Ubuntu 10.10上使用Gnome。我使用JSON格式化程序,并尝试了您的建议。当我通过HTTP加载JSON文件时,两者都很好用。然而,当我简单地使用Chromium打开文件时,没有应用语法突出显示。也很奇怪,其他应用程序在打开大文件时几乎会死机,而Chromium在同样的情况下没有问题。 - JJD
我给JSONView加了+1,因为它似乎比JSON格式化器更快。然而,正如我已经说明的那样,它们并没有解决我的问题。 - JJD
我还发现了如何格式化本地文件。您需要显式为扩展程序启用对本地文件的访问权限 - JJD

4
我通常使用 Sublime Text 进行这个任务。有一个专门的插件可以完成这项工作。 Pretty JSON 插件会解析所选择的 JSON 内容,并以结构化的方式打印出来。
你只需要选择内容,然后按下 Ctrl+Alt+j 即可。

2
核心用途是美化大型JSON格式。我使用Chrome扩展程序JSON View测试了一个25MB的JSON文件。在加载本地文件或网络文件时会崩溃。所谓的崩溃是指JSON不会被格式化,并且在查看JSON视图选项时,您将收到崩溃消息。我也尝试了类似的Firefox附加组件,还尝试了在线JSON格式化工具。
发现了这个库-jsonpps。从命令行输入和保存格式化后的JSON为单独的文件,可以很好地对大型JSON进行美化。它还可以保存在同一文件中(需要可选参数)。
一个缺点是,安装和运行需要熟悉Java和Maven。
安装和运行方法如下:
git clone https://github.com/bazaarvoice/jsonpps.git
mvn clean package
cd target 
java -jar jsonpps-1.2-SNAPSHOT.jar -o /path/to/output.json /path/to/largeInput.json

这个解决方案不仅适用于Ubuntu,它应该在任何操作系统上都可以工作。

2

这个不起作用 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接