问题描述
使用jsonpath解析json,返回结果与期望不一致
环境信息
请填写以下信息:
- OS信息: [macOS:14.8.1 (23J30) 内存:16 GB 2667 MHz DDR4 处理器:2.6 GHz 六核Intel Core i7]
- JDK信息: [openJDK 17.0.2]
- 版本信息:[Fastjson2 2.0.60]
重现步骤
如何操作可以重现该问题:
- 使用 方法 :
本地新建main方法
- 输入数据
{
"activityId": "9260304192237310917"
"activityRuleDtos": [
{
"awardId": "8260304192237381811"
"promotionRuleDtos": [
{
"field": "dataCenterUserTagLimit"
},
{
"field": "tradeTime"
},
{
"field": "skuLimit"
}
]
},
{
"awardId": "8260304192237401811",
"promotionRuleDtos": [
{
"field": "tradeTime"
},
{
"field": "skuLimit"
}
]
}
]
}
- java代码
String jsonPathConfig1 = "$.activityRuleDtos[?(@.promotionRuleDtos[?(@.field == 'dataCenterUserTagLimit')])].awardId";
Object value1 = JSONPath.extract(json, jsonPathConfig1);
System.out.println(value1);
期待的正确结果
期待输出:["8260304192237381811"]
相关日志输出
控制台输出:["8260304192237381811","8260304192237401811"]
附加信息
无
问题描述
使用jsonpath解析json,返回结果与期望不一致
环境信息
请填写以下信息:
重现步骤
如何操作可以重现该问题:
本地新建main方法
{ "activityId": "9260304192237310917" "activityRuleDtos": [ { "awardId": "8260304192237381811" "promotionRuleDtos": [ { "field": "dataCenterUserTagLimit" }, { "field": "tradeTime" }, { "field": "skuLimit" } ] }, { "awardId": "8260304192237401811", "promotionRuleDtos": [ { "field": "tradeTime" }, { "field": "skuLimit" } ] } ] }期待的正确结果
期待输出:["8260304192237381811"]
相关日志输出
控制台输出:["8260304192237381811","8260304192237401811"]
附加信息
无