我正在使用Java Spring boot JSON,并且我正在尝试将下面的restTemplate反序列化为它们对应的对象。然而,它返回null。
我这样做是对的吗?我应该返回一个字符串响应实体,然后进行转换吗?
{
  "Events": [
    {
      "Id": 3584588,
      "Url": "https://api.wildapricot.org/v2/accounts/257051/Events/3584588",
      "EventType": "Regular",
      "StartDate": "2019-10-07T07:00:00-05:00",
      "EndDate": "2019-10-11T12:00:00-05:00",
      "Location": "Renaissance Montgomery Hotel & Spa",
      "RegistrationEnabled": false,
      "RegistrationsLimit": null,
      "PendingRegistrationsCount": 0,
      "ConfirmedRegistrationsCount": 0,
      "CheckedInAttendeesNumber": 0,
      "InviteeStat": {
        "NotResponded": 0,
        "NotAttended": 0,
        "Attended": 0,
        "MaybeAttended": 0
      },
      "Tags": [
        "event"
      ],
      "AccessLevel": "AdminOnly",
      "StartTimeSpecified": true,
      "EndTimeSpecified": true,
      "HasEnabledRegistrationTypes": false,
      "Name": "2020 Montgomery IT Summit"
    },
    {
      "Id": 3584591,
      "Url": "https://api.wildapricot.org/v2/accounts/257051/Events/3584591",
      "EventType": "Rsvp",
      "StartDate": "2019-10-03T00:00:00-05:00",
      "EndDate": "2019-10-31T00:00:00-05:00",
      "Location": "Here",
      "RegistrationEnabled": true,
      "RegistrationsLimit": null,
      "PendingRegistrationsCount": 0,
      "ConfirmedRegistrationsCount": 0,
      "CheckedInAttendeesNumber": 0,
      "InviteeStat": {
        "NotResponded": 0,
        "NotAttended": 0,
        "Attended": 0,
        "MaybeAttended": 0
      },
      "Tags": [
        "volunteer"
      ],
      "AccessLevel": "Public",
      "StartTimeSpecified": false,
      "EndTimeSpecified": false,
      "HasEnabledRegistrationTypes": true,
      "Name": "Volunteer Event"
    }
 ]
}这是我的电话:
ResponseEntity<WaEvents> response = restTemplate.exchange(uri,
                HttpMethod.GET,
                request,
                WaEvents.class
        );
return response.getBody().getEvents();下面是我的WaEvents类:
@Data
public class WaEvents implements Serializable {
    @JsonUnwrapped
    @JsonProperty("Events")
    private List<WaEvent> events;
}下面是WaEvent类
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class WaEvent {
    @JsonProperty("Id")
    public Integer id;
    @JsonProperty("Name")
    public String name;
    @JsonProperty("Location")
    public String location;
    @JsonProperty("StartDate")
    public LocalDate startDate;
    @JsonProperty("EndDate")
    public LocalDate endDate;
    @JsonProperty("IsEnabled")
    public Boolean isEnabled;
    @JsonProperty("Description")
    public String description;
    @JsonProperty("RegistrationLimit")
    public Integer RegistrationLimit;
}发布于 2020-05-24 06:02:58
带有示例的As explained here:
public class Parent {
    public int age;
    public Name name;
}
public class Name {
    public String first, last;
}如果没有@JsonUnwrapped,JSON就是:
{
    "age" : 18,
    "name" : {
        "first" : "Joey",
        "last" : "Sixpack"
    }
}对于@JsonUnwrapped,JSON是:
{
    "age" : 18,
    "first" : "Joey",
    "last" : "Sixpack"
}因此,@JsonUnwrapped将扁平化属性,events将不复存在:
{
    "Id": 3584588,
    "Name": "2020 Montgomery IT Summit",
    "Location": "Renaissance Montgomery Hotel & Spa",
    "StartDate": "2019-10-07T07:00:00-05:00",
    "EndDate": "2019-10-11T12:00:00-05:00",
    ...
}尝试删除@JsonUnwrapped
https://stackoverflow.com/questions/61978616
复制相似问题