如果JSON数据中不存在谓词中的键,则Jayway的JsonPath返回空数组

时间:2017-05-18 10:17:14

标签: java jsonpath

问题:我正在尝试使用表达式

评估JSON文本
$.sessions[?(@.key=='session3')].value

使用Jayway JsonPath 2.2.0库。

JsonText = {
"username": xyz,
"empid": "1",
"sessions": [{
             "key": "session1",
             "value": "java"}, 
             {
             "key": "session2",
             "value": "C"}]
}

即使我使用Option.DEFAULT_PATH_LEAF_TO_NULL0.

,它也会返回空对象而不是null

代码段:

Configuration configuration = Configuration.defaultConfiguration().addOptions(Option.DEFAULT_PATH_LEAF_TO_NULL);
Object res = JsonPath.using(configuration).parse(JsonText).read("$.sessions[?(@.key=='session3')].value");

由于它是空对象,因此应用程序无法确定其值是否为空或键本身​​是否存在。请帮忙

注意:

如果表达式为Option.DEFAULT_PATH_LEAF_TO_NULLnull

,则

$..sessiontype会返回$.sessions.sessiontype个对象(按预期方式)

0 个答案:

没有答案