![从命令行验证 JSON 文件的语法(CLI 健全性检查)](https://linux22.com/image/1195514/%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E9%AA%8C%E8%AF%81%20JSON%20%E6%96%87%E4%BB%B6%E7%9A%84%E8%AF%AD%E6%B3%95%EF%BC%88CLI%20%E5%81%A5%E5%85%A8%E6%80%A7%E6%A3%80%E6%9F%A5%EF%BC%89.png)
我可以在 Ubuntu Linux 上运行什么最简单的命令来验证 JSON 文件的健全性?
我有一个很长的 JSON 文件,我刚刚用 编辑了它vim
。我想确保我的更改没有引入任何语法错误。
我知道我可以为此编写一个 python 脚本,但我更喜欢内置的、更简单的脚本。
是否有一些 bash 单行程序可以针对文件运行,以告诉我 JSON 文件是否(以及在哪里)存在语法问题?
答案1
您可以使用jq
并将 stdout 发送到 null
sudo apt-get install jq
jq . /path/to/yourfile.json 1> /dev/null
示例执行
以下是一些示例运行
无错误
如果 json 文件中没有错误,则不会有输出,退出代码为 0
user@host:~$ jq . updates/v1/meta.json 1> /dev/null
user@host:~$ echo $?
0
user@host:~$
错误
如果 json 文件中有错误,则输出将准确告诉您哪一行和字符,并且退出代码将非零
user@host:~$ jq . updates/v1/meta.json 1> /dev/null
parse error: Expected another array element at line 15, column 8
user@host:~$ echo $?
4
user@host:~$
答案2
sudo apt install jsonlint
然后做jsonlint-php {file}
手册页:
OPTIONS
-q, --quiet
Cause jsonlint to be quiet when no errors are found
-h, --help
Show this message