JSON 具有有时为数组的字段的对象

JSON Objects with Field that is sometimes an Array

问题:访问请求目标有时是单个目标,有时是数组

问题:如何根据找到的内容使 Jackson 反序列化为单个目标或数组?

单个目标JSON

                                    "access_request": {
                                    "targets": {
                                        "target": {
                                            "@type": "ANY",
                                            "id": 1189118
                                        }
                                    }
                                } 

目标数组JSON

                                    "access_request": {
                                    "targets": {
                                        "target": [
                                            {
                                                "@type": "Object",
                                                "id": 1189167,
                                                "object_name": "OUTSIDE",
                                                "object_type": "acl",
                                                "object_details": "2.2.2.2",
                                                "management_id": 29,
                                                "management_name": "ace2"
                                            },
                                            {
                                                "@type": "Object",
                                                "id": 1189168,
                                                "object_name": "ONRAMP",
                                                "object_type": "acl",
                                                "object_details": "1.1.1.1",
                                                "management_id": 29,
                                                "management_name": "ace1"
                                            }
                                        ]
                                    } 
                                }

'Target' POJO:

@JsonPropertyOrder({
"target"

}) @Generated("jsonschema2pojo") public class 目标实现可序列化 {

@JsonProperty("target")
private Target target = new Target();//How can I make Jackson deserialize to either a Single Target or an Array<Target> depending on what is found?
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
.
.//Getters, Setters
.

}

使用单个列表类型的字段,并激活功能ACCEPT_SINGLE_VALUE_AS_ARRAY

YourTargetClass result = mapper.reader(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
                         .forType(YourTargetClass.class)
                         .readValue(json);