jq判断元素是否存在
2020-10-01 本文已影响0人
CodingCode
假设json内容:
{
"A": "a",
"B": {
"B1": "b1",
"B2": "b2"
}
}
两种办法
- 把元素值读出来,判断是否为null
$ cat t.json | jq -r -c '.A'
a
$ cat t.json | jq -r -c '.B'
{"B1":"b1","B2":"b2"}
$ cat t.json | jq -r -c '.C'
null
$ cat t.json | jq -r -c '.B.B1'
b1
$ cat t.json | jq -r -c '.B.B2'
b2
$ cat t.json | jq -r -c '.B.B3'
null
- 使用has函数,判断返回true还是false
$ cat t.json | jq '. | has("A")'
true
$ cat t.json | jq '. | has("B")'
true
$ cat t.json | jq '. | has("C")'
false
$ cat t.json | jq '.B | has("B1")'
true
$ cat t.json | jq '.B | has("B2")'
true
$ cat t.json | jq '.B | has("B3")'
false