适用于Linux的JSON命令行格式化工具

Siv*_*iva 52 linux json

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

tjb*_*tjb 85

 alias pp='python -mjson.tool'
 pp mydata.json
Run Code Online (Sandbox Code Playgroud)

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

  • 过时的答案.使用jq. (4认同)

her*_*ere 56

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

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

jq就像是用于JSON数据的sed - 你可以用它来切片和过滤,映射和转换结构化数据,同样方便sed,awk,grep和朋友让你玩文本.

jq是用可移植的C编写的,它没有运行时依赖性.您可以下载单个二进制文件,将其写入远程计算机,并期望它可以正常工作.

  • 对我来说,这个解决方案似乎是最好的:易于安装,输出保持输入的属性顺序 - 这在编写文档时可能有时非常实用,因为它支持更好的可读性.典型用途:`$ jq.data.json`(注意`jq`之后的点). (6认同)
  • 确实jq太棒了。安装 jq 后,在 Vim 中,您可以将任何 JSON 粘贴到新缓冲区中并运行 `:%!jq '.'` 这会漂亮地打印缓冲区中的 JSON。来源:[Vim:美化 JSON](https://remarkablemark.org/blog/2018/02/28/vim-beautify-json/) (4认同)

gli*_*tak 19

在Ubuntu上,jsonlint是由提供的 apt:python-demjson

用法:

$ sudo apt-get install python-demjson
$ jsonlint -f input.json > output.json
Run Code Online (Sandbox Code Playgroud)

  • 看来在当前包中,使用"python-demjson"包安装的命令是"jsonlint-py"而不是"jsonlint". (3认同)

小智 8

添加到vimrc:

" Format JSON data
map <C-F6> :%!python -m json.tool<CR>
Run Code Online (Sandbox Code Playgroud)

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


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

%!python -m json.tool
Run Code Online (Sandbox Code Playgroud)