【发布时间】:2020-08-08 17:45:40
【问题描述】:
如果父元素既可以是 JSONArray 也可以是 JSONObject,我在检索值时就会遇到麻烦。为此,我使用 Deepcopy 语法来检索它。现在的问题是,如果内部数组中也存在子属性,则会获得额外的值。
例如: JpathExpression:
$.store..book..innerBook..category
结果是:
[
"innerReference1",
"innerBook1Ref1",
"innerReference2"
]
示例 1 预期结果是:
[
"innerReference1",
"innerReference2"
]
示例 1:
{
"store": {
"book": [
{
"innerBook": [
{
"category": "innerReference1",
"author": "Nigel Rees",
"innerBook1": [
{
"category": "innerBook1Ref1"
}
]
},
{
"category": "innerReference2",
"author": "Nigel Rees"
}
]
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
示例 2:
{
"store": {
"book": [
{
"innerBook":
{
"category": "innerReference1",
"author": "Nigel Rees",
"innerBook1": [
{
"category": "innerBook1Ref1"
}
]
}
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
示例 2 预期结果是:
[
"innerReference1"
]
【问题讨论】:
-
它在示例 1 中运行良好......而对于示例 2......它也在检索 innerBook1 类别的值......但理想情况下它不应该。
-
是...来自示例 1...InnerBook1.category 被忽略,但示例 2 InnerBook1.category 包含在响应中。
-
两个示例都需要..只需要单独检索 InnerBook 类别,因为在 Jpath Expression InnerBook1 中未定义,因为 Deep copy 目前它也在提取 innerBook1 类别值的值,理想情况下不应该.我为两个示例添加了预期结果。请查看它,如果您找到任何解决方案,它将非常有帮助
标签: java json jsonpath json-path-expression jayway