나는 REST API에 JSON을 반환하기 위해 Jersey을 사용하고 있습니다. 클라이언트 측에서는 google-gson을 사용하고 있습니다. JSON을 비 직렬화하는 동안 다음 오류가 발생합니다.문제 : gersey를 사용하여 직렬화, gson을 사용하여 JSON 역 직렬화
com.google.gson.JsonParseException: The JsonDeserializer MapTypeAdapter failed to deserialized json object {} given the type interface java.util.Map
at com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:63)
at com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:88)
at com.google.gson.JsonObjectDeserializationVisitor.visitFieldUsingCustomHandler(JsonObjectDeserializationVisitor.java:116)
at com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:158)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:131)
at com.google.gson.JsonDeserializationCo
데 뉴저지로 JSON에 연재되고있는 오브젝트 여기
public class Dealer implements Serializable
{
private String serviceURL;
private Map hoursService;
List dealerAttributes;
}
은 JSON이
{"serviceURL":www.google.com,"hoursService":{"3":{"dayOfWeek":3,"closeTime":"6:30 PM","openTime":"7:30 AM"},"2":{"dayOfWeek":2,"closeTime":"6:30 PM","openTime":"7:30 AM"},"1":{"dayOfWeek":1,"closeTime":"6:30 PM","openTime":"7:30 AM"}},"dealerAttributes":[{"language":"English","dealerAttributeName":"Spanish Speaking","updateDate":1174971061000},{"language":"English","updateDate":1103003316000}]}
뉴저지
에 의해 생성되는 제네릭이 아닌 (어떤 유형을 지정하지 않았습니다)지도와 목록
이유가 무엇 일 수 있습니다. 이 문제를 해결하도록 도와주세요. gson보다 나은 유틸리티가 있습니까? 제발 제안 해주세요.
감사합니다.
비슷한 질문 : http://stackoverflow.com/questions/5424263/json-decode-custom-class-with-hashmap-member-using-gson-in-java – MatrixFrog