1. jq 命令参数
[{"name":"aox.lei","url":"","address":{"city":"北京","country":"中国"},"arrayiiirowser":[{"name":"Google","url":""},{"name":"Baidu","url":""}]},{"name":"aox.lei.blog","url":"","address":{"city":"北京","country":"中国"},"arrayBrowser":[{"name":"百度","url":""},{"name":"bing","url":""}]}]
将数据保存在1.json中
2. 格式化json数据
jq . file_path
. 的意思是所有数据, 不过滤
cat 1.json | jq# 或者jq . 1.json
返回数据
[{"name": "aox.lei","url": "","address": {"city": "北京","country": "中国"},"arrayBrowser": [{"name": "Google","url": ""},{"name": "Baidu","url": ""}]},{"name": "aox.lei.blog","url": "","address": {"city": "北京","country": "中国"},"arrayBrowser": [{"name": "百度","url": ""},{"name": "bing","url": ""}]}]
3. 根据index获取数据
jq '.[0]' 1.json
.[0] 的意思是获取下标是0的数据
返回数据:
{"name": "aox.lei","url": "","address": {"city": "北京","country": "中国"},"arrayBrowser": [{"name": "Google","url": ""},{"name": "Baidu","url": ""}]}
1. 截取数据
jq '.[0-2]' 1.json
返回数据
[{"name": "aox.lei","url": "","address": {"city": "北京","country": "中国"},"arrayBrowser": [{"name": "Google","url": ""},{"name": "Baidu","url": ""}]},{"name": "aox.lei.blog","url": "","address": {"city": "北京","country": "中国"},"arrayBrowser": [{"name": "百度","url": ""},{"name": "bing","url": ""}]}]
4. 管道符的使用
jq '.[0] | {name:.name, url:.url}' 1.json
意思是将.[0]的数据重新格式化, 赋值生成新的一个json, 这样可以过滤掉没用的数据, 方便查看
返回数据
{"name": "aox.lei","url": ""}
jq '.[] | {name:.name, url:.url}' 1.json
返回数据
{"name": "aox.lei","url": ""}{"name": "aox.lei.blog","url": ""}
5. 获取元素个数
jq '.[] | length' 1.json
返回数据
44
6. keys操作
1. 获取keys
jq 'keys' 1.json
返回数据
[0,1]
2. 判断key是否存在 has(key)
jq 'map(has("name"))' 1.json
返回数据
[true,true]