Linux 命令详解(十一)Shell 解析 json命令jq详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux 命令详解(十一)Shell 解析 json命令jq详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1931字,纯文字阅读大概需要3分钟。
内容图文
前言
在自动化部署中涉及到shell脚本需要动态读取很多配置文件,最好是json格式。
更多jq信息: http://stedolan.github.io/jq/manual/
一、根据key获取value
语法:jq ‘.key‘
1、单个值获取
www@TinywanAliYun:~$ cat d25341478381063d1c76e81b3a52e0592a7c997f.json | jq ‘.sign‘"d25341478381063d1c76e81b3a52e0592a7c997f"
2、JSON nested parse(嵌套解析)
www@TinywanAliYun:~$ cat d25341478381063d1c76e81b3a52e0592a7c997f.json | jq ‘.live_node_config.node1.ip‘"192.168.10.10"
注意:json 数组的键命名必须为下划线"_",不能为"-",否则解析不了。如:
错误的命名
"
live-node-proxy-config
"
: {
"
ip
": "192.168.10.100",
"user": "www",
"pwd": "www123456"
},
正确
"
live_node_proxy_config
"
: {
"
ip
": "192.168.10.100",
"user": "www",
"pwd": "www123456"
},
小菜刀!!!在这里我们可以使用curl可以获取完全一样的结果
www@TinywanAliYun:~$ curl -s ‘https://www.tinywan.com/frontend/websocket_client/autoInstallConf‘ | jq ‘.live_node_config.node1.ip‘"192.168.10.10"
curl 的 -s 参数表示:静默模式。不输出任何东西,更多了解【curl命令】
在这里如果不加该参数则会输出文件下载进度,如下所示:
www@TinywanAliYun:~$ curl ‘https://www.tinywan.com/frontend/websocket_client/autoInstallConf‘ | jq ‘.live_node_config.node1.ip‘
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
10063606360020530 --:--:-- --:--:-- --:--:-- 2058"192.168.10.10"
3、解析不存在的元素,会返回null
www@TinywanAliYun:~$ cat d25341478381063d1c76e81b3a52e0592a7c997f.json | jq ‘.live_node_config.node1.ip123‘null
二、jq的内建函数,如:keys,has
1、keys是用来获取JSON中的key元素的,查找json中所有的键
www@TinywanAliYun:$ curl ‘https://www.tinywan.com/frontend/websocket_client/autoInstallConf‘ | jq ‘keys‘
[
"live-node-config",
"live-node-proxy-config",
"osscmd-config",
"push-config",
"redis-config",
"sign"
]
2、has是用来是判断是否存在某个key
www@TinywanAliYun:~$ curl ‘https://www.tinywan.com/frontend/websocket_client/autoInstallConf‘ | jq ‘has("sign")‘true
www@TinywanAliYun:~$ curl ‘https://www.tinywan.com/frontend/websocket_client/autoInstallConf‘ | jq ‘has("sign2")‘false
www@TinywanAliYun:~$
原文:http://www.cnblogs.com/tinywan/p/7684414.html
内容总结
以上是互联网集市为您收集整理的Linux 命令详解(十一)Shell 解析 json命令jq详解全部内容,希望文章能够帮你解决Linux 命令详解(十一)Shell 解析 json命令jq详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。