JSONPath发行人使用过滤器返回值

问题描述

我有以下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")].$