jq进行json数据解析
学习了:https://www.jianshu.com/p/6de3cfdbdb0e
https://blog.csdn.net/u011641885/article/details/45559031
https://www.cnblogs.com/tinywan/p/7684414.html
使用man可以查看详细帮助,太强大了;
➜ yiqing cat a.json|jq '.'
{
"another": 1,
"all": {
"a0": {
"a1": {
"a2": [
{
"a3": "a3",
"lng": 1,
"lat": 2
},
{
"a32": "a32",
"lng": 1,
"lat": 2
}
]
}
},
"b0": {
"b1": {
"b2": [
{
"b3": "b3",
"lng": 1,
"lat": 2
},
{
"b32": "b32",
"lng": 1,
"lat": 2
}
]
}
}
}
}
a获取多个属性,逗号分隔,可以列出不包含的
➜ yiqing cat a.json|jq '.all|.a0,.b0,.c0'
{
"a1": {
"a2": [
{
"a3": "a3",
"lng": 1,
"lat": 2
},
{
"a32": "a32",
"lng": 1,
"lat": 2
}
]
}
}
{
"b1": {
"b2": [
{
"b3": "b3",
"lng": 1,
"lat": 2
},
{
"b32": "b32",
"lng": 1,
"lat": 2
}
]
}
}
b可以直接按照数据来进行过滤
➜ yiqing cat a.json|jq '.all|.[]'
{
"a1": {
"a2": [
{
"a3": "a3",
"lng": 1,
"lat": 2
},
{
"a32": "a32",
"lng": 1,
"lat": 2
}
]
}
}
{
"b1": {
"b2": [
{
"b3": "b3",
"lng": 1,
"lat": 2
},
{
"b32": "b32",
"lng": 1,
"lat": 2
}
]
}
}
c不停的按照数据进行过滤,可以实现对象不停的拆解
➜ yiqing cat a.json|jq '.all|.[]|.[]|.[]'
[
{
"a3": "a3",
"lng": 1,
"lat": 2
},
{
"a32": "a32",
"lng": 1,
"lat": 2
}
]
[
{
"b3": "b3",
"lng": 1,
"lat": 2
},
{
"b32": "b32",
"lng": 1,
"lat": 2
}
]
d拆解成一个一个对象
➜ yiqing cat a.json|jq '.all|.[]|.[]|.[]|.[]'
{
"a3": "a3",
"lng": 1,
"lat": 2
}
{
"a32": "a32",
"lng": 1,
"lat": 2
}
{
"b3": "b3",
"lng": 1,
"lat": 2
}
{
"b32": "b32",
"lng": 1,
"lat": 2
}
e加上括号有可以变为数组
➜ yiqing cat a.json|jq '[.all|.[]|.[]|.[]|.[]]'
[
{
"a3": "a3",
"lng": 1,
"lat": 2
},
{
"a32": "a32",
"lng": 1,
"lat": 2
},
{
"b3": "b3",
"lng": 1,
"lat": 2
},
{
"b32": "b32",
"lng": 1,
"lat": 2
}
]
来源:https://www.cnblogs.com/stono/p/12293823.html