나는 스프링을 처음 접했고 예제를 따라 http://spring.io/guides/gs/consuming-rest에 올랐다. 예제를 조금 넓히기 위해 http://graph.facebook.com/pivotalsoftware의 모든 JSON 요소를 매핑하지 않은 것으로 나타났습니다. 이 예를 들어, 나는 Page.java 년과 같이, "좋아"와 "were_here_count"을 추가하고 싶었 :Spring RestTemplate 커스텀 매핑
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class Page {
private String name;
private String about;
private String phone;
private String website;
private int were_here_count;
private int likes;
public String getName() {return name;}
public String getAbout() {return about;}
public String getPhone() {return phone;}
public String getWebsite() {return website;}
public int getVisitCount() {return were_here_count;}
public int getLikes() {return likes;}
}
및 Application.java에서 이러한 변경하기 :
import org.springframework.web.client.RestTemplate;
public class Application {
public static void main(String args[]) {
RestTemplate restTemplate = new RestTemplate();
Page page = restTemplate.getForObject("http://graph.facebook.com/pivotalsoftware", Page.class);
System.out.println("Name: " + page.getName());
System.out.println("About: " + page.getAbout());
System.out.println("Phone: " + page.getPhone());
System.out.println("Website: " + page.getWebsite());
System.out.println("Visit count: " + page.getVisitCount());
System.out.println("Likes: " + page.getLikes());
}
}
내가 생각되었다 매핑은 요소 이름에 의해 수행되었으며 "좋아요"에 대해서는 작동했지만 "were_here_count"에 대해서는 작동하지 않았습니다. 출력 :
Name: Pivotal
About: Pivotal is enabling the creation of modern software applications that leverage big & fast data – on a single, cloud independent platform.
Phone: (650) 286-8012
Website: http://www.pivotal.io
Visit count: 0
Likes: 1175
were_here_count는 현재 60입니다. 기본 변환기가 변수 이름의 밑줄을 좋아하지 않는다고 생각합니다. 그래서 내 자신의 매핑을 제공하는 getForObject의 오버로드 된 버전을 다음과 같이 사용했습니다.
하지만 모두 사용할 수 없습니다. 여기에 사용자 정의 JSON 변환기에 관한 몇 가지 예제를 보았지만 잘 이해하지 못했습니다. 더 간단한 예제이며, 변수 이름의 간단한 String-String 매핑으로이 작업을 수행 할 수 없습니까?
누구든지이 작업을 수행하는 방법을 알고 있으며 사용자 지정 변환기를 작성하는 방법과 필요한 단계는 무엇입니까? 고맙습니다! :)