我尝试解析的JSON很大,基本上看起来像
{
"order": [
"hash1",
"hash2"
],
"posts": {
"hash4": {
"id": "hash4",
"message": "lorem ipsem"
},
"hash5": {
"id": "hash5",
"message": "dolor sit amet"
},
"hash6": {
"id": "hash6",
"message": "consectetur adipiscing elit"
}
}
}
到目前为止,我一直在处理此问题的方法只是对消息进行grep
$ grep 'message' jq_dat.json
"message": "lorem ipsem"
"message": "dolor sit amet"
"message": "consectetur adipiscing elit"
这对我当前的目的有效,但是我想知道如何使用jq
获得相同的效果。即
$ jq .posts.<something>.message < jq_dat.json
"lorem ipsem"
"dolor sit amet"
"consectetur adipiscing elit"
我尝试使用[]
和{}
来代替something
,但是它们都吐出了编译错误。
答案 0 :(得分:2)
您的点太多了
jq .posts[].message < jq_dat.json