Shell 下使用 jq
解析 JSON,十分方便。
源数据
$ curl ip.dhcp.cn/?json
{
"IP": "134.175.159.160",
"Address": {
"Country": "中国",
"Province": "广东省",
"City": "广州市"
},
"ISP": "电信"
}
1. 使用 jq 解析 JSON 串
$ curl -s ip.dhcp.cn/?json | jq .IP
"134.175.159.160"
- 获取字典长度
$ curl -s ip.dhcp.cn/?json | jq ".Address"
{
"Country": "中国",
"Province": "广东省",
"City": "广州市"
}
$ curl -s ip.dhcp.cn/?json | jq ".Address | length"
3
- 获取嵌套数据
$ curl -s ip.dhcp.cn/?json | jq .Address.City
"广州市"
2. Python 解析 JSON 串
$ curl -s ‘ip.dhcp.cn/?json‘ | python -c "import sys, json; print json.load(sys.stdin)[‘IP‘]"
134.175.159.160
reference
- [1] justcode. Shell:无比强大的 shell 之 json 解析工具 jq
- [2] Tom CzHen. 使用 Shell 脚本来处理 JSON