如何用Jayway Json Path查找无likes字段的书籍价格?
用Jayway Json Path查找无likes字段书籍的price值
当然可以用Jayway Json Path实现这个需求!不过你当前写的表达式$.store.book[? (@.likes == null)].price需要调整,因为它匹配的是存在likes字段但值为null的书籍,而你要找的是根本没有likes字段的书籍,两者的判断逻辑不一样。
正确的表达式写法
在Jayway Json Path中,判断字段不存在有两种常用写法:
- 写法一:利用
!(@.field)判断字段不存在$.store.book[?(!@.likes)].price - 写法二:直接判断字段等于
undefined$.store.book[?(@.likes == undefined)].price
验证结果
针对你提供的JSON数据,这两个表达式都会返回以下price值:
- 8.95(《Sayings of the Century》)
- 8.99(《Moby Dick》)
- 22.99(《The Lord of the Rings》)
而你原来的表达式会返回空结果,因为你的数据里没有任何一本书的likes字段是null——只有第二本书明确存在likes字段(值为1),其他三本书都没有这个字段,所以@.likes == null无法匹配到它们。
内容的提问来源于stack exchange,提问作者Yassir Arafat Roni
相关产品推荐
相关产品推荐

