2016-08-11 1 views
3

Spring RestTemplate을 사용하여 GET request을 타사 서비스에 보내고 있습니다. list of some entities을 나타내는 큰 JSON을 반환합니다. 그러나 모든 엔티티는 실제로 크기가 크고 불필요한 데이터가 많이 포함되어 있습니다. 모든 개체에서 3 개의 필드 만 가져와야합니다. 어떻게 그것을 성취하기 위해 내 모델을 만들 수 있습니까? 예를 들어 우리는이 JSON있는 경우 :RestTemplate을 사용한 부분 JSON 검색

{ 
    "entity1": "foo", 
    "entity2": "bar", 
    "entity3": "...", 
    "entity4": { 
     "aaa": "...", 
     "bbb": "...", 
     "ccc": 5 
    }, 
    "entity5": [ 
     "...", 
     "..." 
    ] 
}, { 
    "entity1": "foo", 
    "entity2": "bar", 
    "entity3": "...", 
    "entity4": { 
     "aaa": "...", 
     "bbb": "...", 
     "ccc": 5 
    }, 
    "entity5": [ 
     "...", 
     "..." 
    ] 
} 

을 그리고 난 수업이 있습니다

public class SomeModel implements Serializable { 

    private static final long serialVersionUID = 1L; 

    private Long entity1; 
    private String entity2;  
} 

가 어떻게이 클래스의 인스턴스의 배열이 JSON 변환 할 수 있습니까? 당신이 잭슨을 사용하는 경우

답변

2

, 당신은 같은 @JsonIgnoreProperties(ignoreUnknown = true)와 모델 클래스에 주석을 달 수 :

@JsonIgnoreProperties(ignoreUnknown = true) 
public class PosterDishModel implements Serializable { 

    private static final long serialVersionUID = 1L; 

    private Long entity1; 
    private String entity2;  
} 

기본적으로, 수신 된 객체의 알 수없는 속성을 버리고 잭슨을 지시합니다.

이것은 네트워크를 통해 전체 개체의 전송을 막지는 않지만 트래픽은 동일하지만 비 직렬화 할 개체에는 불필요한 필드와 데이터가 포함되지 않습니다.

+0

덕분에 많은 도움이되었습니다. :) – Alesto