Shell脚本处理JSON数据工具jq
发布时间:2020-12-15 17:06:42 所属栏目:安全 来源:网络整理
导读:当我们在LInux下需要处理json数据时,第一反应是用脚本编写一个工具,这样即耗时又不通用. 本文将介绍专门的命令行json处理工具 jq . 1、安装: 1)Ubuntu用户可以直接使用下列命令安装: $ sudo apt-get install jq 2)采用源码安装: https://github.com/sted
当我们在LInux下需要处理json数据时,第一反应是用脚本编写一个工具,这样即耗时又不通用. 本文将介绍专门的命令行json处理工具jq. 1、安装: 1)Ubuntu用户可以直接使用下列命令安装:
$ sudo apt-get install jq2)采用源码安装: https://github.com/stedolan/jq https://stedolan.github.io/jq/
2、使用:
{ "name": "中国","province": [{ "name": "黑龙江","cities": { "city": ["哈尔滨","大庆"] } },{ "name": "广东","cities": { "city": ["广州","深圳","珠海"] } },{ "name": "台湾","cities": { "city": ["台北","高雄"] } },{ "name": "新疆","cities": { "city": ["乌鲁木齐"] } }] } 1)解析json:
$ cat test.json | jq '.name' "中国" $ cat test.json | jq '.province[0].name' "黑龙江" $ cat test.json | jq '.province[].name' "黑龙江" "广东" "台湾" "新疆"2)提取字段:
$ cat test.json | jq '.province[0]' { "cities": { "city": [ "哈尔滨","大庆" ] },"name": "黑龙江" } $ cat test.json | jq '.province[]' { "cities": { "city": [ "哈尔滨","name": "黑龙江" } { "cities": { "city": [ "广州","珠海" ] },"name": "广东" } { "cities": { "city": [ "台北","高雄" ] },"name": "台湾" } { "cities": { "city": [ "乌鲁木齐" ] },"name": "新疆" } $ cat test.json | jq '.province[0] | {name,cities}' { "cities": { "city": [ "哈尔滨","name": "黑龙江" } $ cat test.json | jq '.province[0] | {name}' { "name": "黑龙江" } 3)内置函数keys:
$ cat test.json | jq 'keys' [ "name","province" ] $ cat test.json | jq '.|keys' [ "name","province" ] $ cat test.json | jq '.province[0]|keys' [ "cities","name" ] $ cat test.json | jq '.province[]|keys' [ "cities","name" ] [ "cities","name" ] 4)内置函数has:
$ cat test.json | jq 'has("name")' true $ cat test.json | jq '.province[0] | has("name")' true $ cat test.json | jq 'has("noname")' false 参考: https://www.ibm.com/developerworks/cn/linux/1612_chengg_jq/index.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |