如何解决有没有办法区分空值和缺少键?
如果我执行
echo '{"foo": "bar","baz": null}' | jq '.baz'
我收到null
作为结果。
但是如果我执行
echo '{"foo": "bar","baz": null}' | jq '.hello'
我也收到null
作为结果。
在第一种情况下,该值为null
,在第二种情况下该值不存在(无法解析)。有什么办法可以区分这两种情况吗?
解决方法
是的,有。内置has
返回一个布尔值,该布尔值表示其参数是否作为键(或索引,如果输入是数组)存在于其输入中。
$ echo '{"foo": null}' | jq 'has("foo")'
true
$ echo '{"foo": null}' | jq 'has("bar")'
false
$ echo '[null]' | jq 'has(0)'
true
$ echo '[null]' | jq 'has(1)'
false
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。