-1

我有以下 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 ?

4

1 回答 1

0

尝试使用

$.wd:Program_of_Study_Reference.*[?(@['@wd:type'] == "Program_of_Study_ID")].$
于 2020-10-26T23:13:12.907 回答