我有json结构,如下面的代码部分所述,我想只从configs
数组中获取包含project_ids
的元素 - 27
我尝试过的内容:JsonPath.read(json, "$.configs.*[?(@.context.project_ids.*[?(@=='27')])]")
但是,这会返回配置数组中的两个元素,因此它不正确。
{
"configs": [{
"context": {
"is_global": false,
"project_ids": [26, 27]
},
"options": {
"is_required": true,
"default_value": "1",
"items": "1, Design\n2, Ready for Review\n3, Reviewed\n4, Rejected"
},
"id": "a1055c88-3a31-4eab-bb57-94351d9b52ce"
},
{
"context": {
"is_global": false,
"project_ids": [1,5,11]
},
"options": {
"is_required": false,
"default_value": "",
"items": "1, Test1\n2, Test2\n3, Test3"
},
"id": "9d56905b-5a51-447e-81fb-3270ae47d837"
}],
"include_all": true,
"is_active": true
}
答案 0 :(得分:0)
JSON数据包含键和值,如果要访问某些值,可以使用json特定值的键。在您的结构中,配置是包含包含值和项目ID的键。您可以使用该配置键访问值并生成数组的Id并使用Key从JSON获取详细信息并访问您想要的iD 。希望你明白了。
答案 1 :(得分:0)
我找到了答案。而不是==我们必须在查找表达式中使用CONTAINS。例如:($.*[?(@.context.project_ids CONTAINS '27')]
)