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 } ]