Java JsonPath:按数组中任何数组的值筛选

Java JsonPath:按数组中任何数组的值筛选,java,arrays,json,filter,jsonpath,Java,Arrays,Json,Filter,Jsonpath,我尝试从“*…ou.subscriber”中的subscriberNumber中进行筛选以获取值,该subscriberNumber具有extendedinfo[SOURCE\u或\u TARGET==“TARGET”],但我的jsonpath its不起作用 我尝试的jsonpath: $..ou[?(@.extendedInfo[0].value=="TARGET")].subscriber[0].subscriberNumber { "customer": {

我尝试从“*…ou.subscriber”中的subscriberNumber中进行筛选以获取值,该subscriberNumber具有extendedinfo[SOURCE\u或\u TARGET==“TARGET”],但我的jsonpath its不起作用

我尝试的jsonpath:

$..ou[?(@.extendedInfo[0].value=="TARGET")].subscriber[0].subscriberNumber
    {
    "customer": {
        "customerId": "34975213",
        "ou": [
            {
                "numberOfIDD": 0,
                "numberOfIR": 0,
                "ouId": 117482315,
                "subscriber": [
                    {
                        "status": 0,
                        "subscriberId": "90674393",
                        "subscriberNumber": "001"
                    }
                ],
                "responseCode": "FM120100000",
                "responseMsg": "Success",
                "extendedInfo": [
                    {
                        "name": "SOURCE_OR_TARGET",
                        "value": "BUCKET"
                    },
                    {
                        "name": "SOURCE_OR_TARGET",
                        "value": "TARGET"
                    }
                ]
            },
            {
                "numberOfIDD": 0,
                "numberOfIR": 0,
                "ouId": 21046276,
                "subscriber": [
                    {
                        "status": 65,
                        "subscriberId": "17404432",
                        "subscriberNumber": "002"
                    }
                ],
                "extendedInfo": [
                    {
                        "name": "SOURCE_OR_TARGET",
                        "value": "SOURCE"
                    }
                ]
            }
        ]
    }
}
结果,我想得到这个subscriberNumber=“001”

JSON:

$..ou[?(@.extendedInfo[0].value=="TARGET")].subscriber[0].subscriberNumber
    {
    "customer": {
        "customerId": "34975213",
        "ou": [
            {
                "numberOfIDD": 0,
                "numberOfIR": 0,
                "ouId": 117482315,
                "subscriber": [
                    {
                        "status": 0,
                        "subscriberId": "90674393",
                        "subscriberNumber": "001"
                    }
                ],
                "responseCode": "FM120100000",
                "responseMsg": "Success",
                "extendedInfo": [
                    {
                        "name": "SOURCE_OR_TARGET",
                        "value": "BUCKET"
                    },
                    {
                        "name": "SOURCE_OR_TARGET",
                        "value": "TARGET"
                    }
                ]
            },
            {
                "numberOfIDD": 0,
                "numberOfIR": 0,
                "ouId": 21046276,
                "subscriber": [
                    {
                        "status": 65,
                        "subscriberId": "17404432",
                        "subscriberNumber": "002"
                    }
                ],
                "extendedInfo": [
                    {
                        "name": "SOURCE_OR_TARGET",
                        "value": "SOURCE"
                    }
                ]
            }
        ]
    }
}

感谢您的帮助。

糟糕的设计数据结构您希望筛选具有extendedInfo的订阅服务器节点,但不将其包含在订阅服务器中

糟糕的设计数据结构您希望筛选具有extendedInfo的订阅服务器节点,但不将其包含在订阅服务器中

数据结构来自旧系统。我无法控制和改进它们。数据结构来自遗留系统。我无法控制和改进它们。