2014-02-18 3 views
1

Json 파일을 읽으려면 Jackson jars (코어 2.3.1, 주석 2.2.3, databind 2.3.1, 다운로드 페이지의 최신 버전)를 사용하고 있습니다. 새로운 객체에 넣고 그 객체를 파일이나 화면에 쓰거나 인쇄해야합니다. com.fasterxml :Jackson JSON 매핑 "NoClassDefFoundError : JsonPropertyDescription"

내가 본 대부분의 예제는 내가 필요한 항아리의 I 오류 의 ClassNotFoundException가 계속이 있지만 그것은 쉽게

ObjectWriter mapper = new ObjectMapper().writer().withDefaultPrettyPrinter(); 
writer.writeValueAsString(object); 

ObjectMapper mapper = new ObjectMapper(); mapper.writeValueAsString(object); 

또는

있다고 말한다. jackson.annotation.JsonPropertyDescription.

파고가 깊어 질수록 잭슨의 github에있는 JsonPropertyDescription 클래스는 주석 2.2.3 jar과 함께 패키지되지 않은 입니다.

그래서 더 이상 사용되지 않으며 오브젝트를 가져 와서 json으로 프린트하지 않은 새로운 방법이 있습니까? 아니면이 클래스가 우연히 최신 버전에서 제외 되었습니까? 여기에 귀하의 항아리를 업데이트하지만 이미이 문제를 해결 한 경우 확실하지

+1

잠깐, 왜 코어 2.3.x와 - annotations 2.2.x를 사용합니까? – fge

+0

주석의 경우 2.2x가 최신 버전입니다. 나는 혼란 스럽다는 것을 알고 있으며, 이것 때문에 열리는 github 문제가있었습니다. 나는 annotations jar가 더 정적이기 때문에 자주 업그레이드되지 않을 것이라고 생각한다. –

+0

-core 2.2.x로 시도해 볼 수 있는가? – fge

답변

0

몇 가지 답변을 이동 :

Upon digging deeper I find that the JsonPropertyDescription class that is in the github for jackson, is not packaged with the annotations 2.2.3 jar.

는 그것은 new feature in 2.3입니다.

Is there some new way I haven't seen to take an object and print it to json?

나는 그렇게 생각하지 않는다 : writeValueAsString() 2.3.3 (더 이상 사용되지 않음).

사람이 similar problem 인 것처럼 보였고 제안 된 해결책은 기본적으로 "jar 업데이트"입니다. 묻는 사람은 답장을 보내지 않았다. 그래서 우리는 그것이 효과가 있었는지 아닌지 알지 못한다.

+0

항아리를 업데이트하는 것은 관료적 인 승인 절차를 거쳐야 했으므로 잭슨을 포기했습니다. –