jq工具会把json文件更有好的读取出来,此外,jq工具还在背后检查json文件的合法性,如果文件存在格式上的错误,jq也会报出错误存在的位置
sudo apt-get install jq -y
:%!jq '.'
如果该json文件存在格式错误,会报出错误存在的位置,如:
"url"
parse error: Expected string key before ':' at line 1, column 6
cat json | jq .
cat json | jq '.name'
解析不存在的元素key时,会返回null.
案例1
cat json_area.txt | jq '.location.state'
"Beijin"
案例2
$ cat jsondemo
[
{
"sha": "7b81a836c31500e685d043729259affa8b670a87",
"commit": {
"author": {
"name": "William Langford",
"email": "wlangfor@gmail.com",
"date": "2017-06-19T14:55:26Z"
}
}
}
]
$ cat jsondemo | jq '.[0].sha'
"7b81a836c31500e685d043729259affa8b670a87"
jq拥有一些内建的函数,如has,key等, key函数用于获取json中的Key
jq 'keys' json_file
has判断json文件中是否有某一个Key
cat json_raw.txt | jq 'has("name")'
true
cat json_raw.txt | jq 'has("noexisted")'
false