this twitter API users/show
response과 같은 JSON 구문 분석을 위해 Jackson과 Gson Java 라이브러리를이 작업을 수행하는 데 사용했습니다. JSON 속성의 작은 하위 집합에만 관심이 있습니다 .Gson은 매우 간결한 구문 때문에 좋았지 만 Gson을 계속 사용하기 위해 내부적 인 노력을 잃었습니다. Jackson은 이미 응용 프로그램의 다른 곳에서 이미 사용되고 있으므로 문서화되어 있습니다. 더 나은 성능 (나는 양손이 Gson을 잃을 좋은 이유이다).단순한 비 직렬화를위한 Jackson 대 Gson
public class TwitterUser {
private String id_str;
private String screen_name;
public String getId_str() {
return id_str;
}
public void setId_str(String id_str) {
this.id_str = id_str;
}
public String getScreen_name() {
return screen_name;
}
public void setScreen_name(String screen_name) {
this.screen_name = screen_name;
}
}
GSON의 코드 만이 하나 개의 라인 구축하는 데 필요한 같은 POJO를 들어
, 나에게 꽤 좋다TwitterUser user = new Gson().fromJson(jsonStr, TwitterUser.class);
; 가늠자는 잘하고 당신이 원하는 재산을 선택하십시오. 반면 Jackson은 선택한 필드에서 POJO를 작성하는 데 약간 힘들다.
Map<String,Object> userData = new ObjectMapper().readValue(jsonStr, Map.class);
//then build TwitterUser manually
또는 긴 호흡 설명 후
TwitterUser user = new ObjectMapper().readValue(jsonStr, TwitterUser.class);
//each unused property must be marked as ignorable. Yikes! For 30 odd ignored fields thats too much configuration.
그래서
, 위의 증명보다 내가 더 적은 코드로 잭슨을 사용할 수있는 방법은 무엇입니까?
하나 추가 참고 : 당신은 확실히 새로운 ObjectMapper 매번 생성하지 않으 - 중 싱글 톤을 사용하거나 Guice는 인스턴스를 주입 할 수 있습니다. 다행스럽게도 주요 쟁점이 아래에 답변되었습니다! – StaxMan
@StaxMan 그래, 코드 샘플의 완성을 위해서였습니다. – markdsievers