【问题标题】:JSON command line formatter tool for Linux [closed]适用于 Linux 的 JSON 命令行格式化工具 [关闭]
【发布时间】:2011-07-11 18:17:01
【问题描述】:

是否有用于 Linux 命令行格式化 JSON 数据的编辑器或工具?

【问题讨论】:

标签: linux json


【解决方案1】:
 alias pp='python -mjson.tool'
 pp mydata.json

来自已接受答案中的第一个链接:http://ruslanspivak.com/2010/10/12/pretty-print-json-from-the-command-line/

【讨论】:

  • 过时的答案。使用 jq。
  • 不适用于 bool truefalse,仅适用于 python 格式的 True
【解决方案2】:

在 Ubuntu 上,jsonlint 由 apt:python3-demjson 提供

用法:

$ sudo apt install -y python3-demjson
$ jsonlint -f input.json > output.json

【讨论】:

  • 非常适合您查看的 JSON 不符合规范。其他工具(jq,Python json 模块)需要完全符合 JSON 才能工作。
  • 在当前的包中,与“python-demjson”包一起安装的命令似乎是“jsonlint-py”而不是“jsonlint”。
  • apt 包现在似乎被称为python3-demjson。但是,与此软件包一起安装的命令仍称为“jsonlint”。
【解决方案3】:

添加到vimrc:

" Format JSON data
map <C-F6> :%!python -m json.tool<CR>

你可以使用快捷键CTRL+F6来格式化json数据


或者只是在vim的命令模式下:

%!python -m json.tool

【讨论】:

  • 如果您使用 vim,您可以:au FileType json set equalprg=python\ -m\ json.tool 并使用 = 格式化。
【解决方案4】:

jq 是一个轻量级且灵活的命令行 JSON 处理器。

http://stedolan.github.io/jq/

jq 就像用于 JSON 数据的 sed - 您可以使用它来切片、过滤、映射和转换结构化数据,就像 sed、awk、grep 和朋友让您玩文本一样容易。

jq 是用可移植的 C 语言编写的,它具有零运行时依赖性。您可以下载单个二进制文件,将其 scp 到远处的机器上,并期望它能够正常工作。

【讨论】:

  • 对我来说,这个解决方案似乎是最好的:易于安装,输出保持输入的属性顺序 - 这在创作文档时可能有时非常实用,因为它支持更好的可读性。典型用法:$ jq . data.json(注意jq 后面的点)。
  • jq 很棒。请注意,这将不起作用。 jq . data.json &gt; data.json。这将覆盖自己。导出到临时文件并覆盖现有文件。
  • 确实 jq 很棒。一旦你安装了 jq,你可以在 Vim 中将任何 JSON 粘贴到一个新的缓冲区中并运行:%!jq '.' 这会漂亮地打印缓冲区中的 JSON。来源:Vim: prettify JSON
猜你喜欢
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-09
相关资源
最近更新 更多