jq进行json数据解析
jq进行json数据解析
学习了:https://www.jianshu.com/p/6de3cfdbdb0e
https://blog.csdn.net/u011641885/article/details/45559031
https://www.cnblogs.com/tinywan/p/7684414.html
https://stedolan.github.io/jq/manual/. 帮助文档
使用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 } ]