2015-08-31 5 views
0

У меня есть этот ответ JSON API:Как отобразить вложенную JSON с Ломбками

{ 
    "_links": { 
    "self": { 
     "href": "http://xxx/person{?page,size,sort}", 
     "templated": true 
    } 
}, 
"_embedded": { 
"person": [ 
    { 
    "datetimeCreated": "2015-08-27T11:21:34.000+0000", 
    "datetimeLastUpdated": "2015-08-27T11:21:34.000+0000", 
    "middleName": "Patricia" 
    } 
] 
}, 
"page": { 
    "size": 20, 
    "totalElements": 2, 
    "totalPages": 1, 
    "number": 0 
    } 
} 

У меня есть этот класс, чтобы отобразить ответ:

@Data 
@JsonIgnoreProperties(ignoreUnknown = true) 
public class Person { 
    private Links _links; 
    private Person _embedded; 
    private Page page; 
} 

можно сопоставить «страницу» с классом страницы:

@Data 
@JsonIgnoreProperties(ignoreUnknown = true) 
public class Page { 
    private Integer size; 
    private Integer totalElements; 
    private Integer totalPages; 
    private Integer number; 
} 

Но, как я могу карту '_embedded' и '_links'? Если я сопоставляю _links и _embedded с использованием того же метода, значение равно null для этих полей.

ответ

0

Json не соответствует вашей модели данных. Например, вы объявили _embedded полем типа Person. Но Person, в свою очередь, имеет поля _links, page и т.д.

Для меня правильная модель данных, кажется:

@Data 
    @JsonIgnoreProperties(ignoreUnknown = true) 
    public class Person1 { 
    private Links _links; 
    private Embedded _embedded; 
    private Page page; 

    @Data 
    @JsonIgnoreProperties(ignoreUnknown = true) 
    public static class Page { 
    private Integer size; 
    private Integer totalElements; 
    private Integer totalPages; 
    private Integer number; 
    } 

    @Data 
    @JsonIgnoreProperties(ignoreUnknown = true) 
    public class Links { 
    private Self self; 
    } 

    @Data 
    @JsonIgnoreProperties(ignoreUnknown = true) 
    public static class Embedded { 
    private List<Person> person; 
    } 

    @Data 
    @JsonIgnoreProperties(ignoreUnknown = true) 
    public static class Self { 
    private String href; 
    private boolean templated; 
    } 

    @Data 
    @JsonIgnoreProperties(ignoreUnknown = true) 
    public static class Person { 
    private DateTime datetimeCreated; 
    private DateTime datetimeLastUpdated; 
    private String middleName; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^