问题描述
我有以下json,但我无法使用过滤器选择其中一个值。具体来说,我想返回“ POS_Undeclared”
{"wd:Program_of_Study_Reference": {
"wd:ID": [
{
"@wd:type": "WID","$": "123456789abcde"
},{
"@wd:type": "Program_of_Study_ID","$": "POS_Undeclared"
}
]
}
}
此jsonpath $.wd:Program_of_Study_Reference.wd:ID[1].$
提供了我所需的信息,但我不能指望顺序一致甚至存在,因此不能使用[1]。
我似乎无法获得@wd:type == Program_of_Study_ID之类的过滤器才能正常工作。我猜这是@和/或:弄乱了我的语法。
如何过滤以获取POS_Undeclared值?
解决方法
尝试使用
$.wd:Program_of_Study_Reference.*[?(@['@wd:type'] == "Program_of_Study_ID")].$