[Linux/JSON] JSON美化工具:json_pp / json解析工具:jq
json_pp
(git-bash内置的用于JSON格式化的管道工具;默认支持)
(Linux CentOS7 暂不支持)
curl http://localhost:8080/xxxx.json | json_pp
root# echo '{"uid":100120,"token":"1fa9fb8004b04f66b7da57393641eddc"}' | json_pp
{
"uid" : 100120,
"token" : "1fa9fb8004b04f66b7da57393641eddc"
}
root# echo '{"uid":100120,"token":"1fa9fb8004b04f66b7da57393641eddc"}' | json_pp .
{
"token" : "1fa9fb8004b04f66b7da57393641eddc",
"uid" : 100120
}
jq
(Linux CentOS/Ubuntu 支持,但需主动安装;默认不支持)
(git-bash暂不支持)
- 安装
[CentOS]
root# yum -y install jq
[Ubuntu]
root# apt-get update
root# apt-get -y install jq
- 使用
root# echo '{"uid":100120,"token":"1fa9fb8004b04f66b7da57393641eddc"}' | jq .
{
"uid": 100120,
"token": "1fa9fb8004b04f66b7da57393641eddc"
}
root# echo '{"uid":100120,"token":"1fa9fb8004b04f66b7da57393641eddc"}' | jq -r '.uid'
100120
$ echo '{"person": {"name": "John", "age": 30, "city": "New York"}}' | jq '.person.name, .person.age'
"John"
30
$ echo '{"person": {"name": "John", "age": 30, "city": "New York"}}' | jq -r '.person.name, .person.age'
John
30
$ echo '[{"person": {"name": "John", "age": 30, "city": "New York"}}, {"person": {"name": "John", "age": 30, "city": "New York"}}]' | jq -r '.[]'
{
"person": {
"name": "John",
"age": 30,
"city": "New York"
}
}
{
"person": {
"name": "John",
"age": 30,
"city": "New York"
}
}
$ echo '[{"person": {"name": "John", "age": 30, "city": "New York"}}, {"person": {"name": "John", "age": 30, "city": "New York"}}]' | jq -r '.[] | "\(.person.name) - \(.person.city)"'
John - New York
John - New York
解释:
jq -r:-r参数表示raw output,直接输出结果,不包含引号
.[]:遍历JSON数组中的每个元素
|:管道操作符,左侧的表达式输出会作为右侧表达式的输入
"\(.person.name) - \(.person.city)":字符串模板,包含两个字段名,用-分隔
grep '"error"' store.error.log | jq -r '"\(.errno) \"\(.error)\" \"\(.msg)\" \"\(.location)\""' | sort -n -k 1 | uniq -c | sort -k 1 -nr
本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

浙公网安备 33010602011771号