2016-07-26 4 views
0

Stackoverflow 질문을 본 후에이 문제를 해결할 수있는 해결책을 찾지 못했습니다.java.lang.ClassCastException : com.google.gson.internal.LinkedTreeMap을 모델로 변환 할 수 없습니다.

이 방법으로 호출이를 통해 이루어집니다
public <T> List<T> deserializeList(String json) { 
    Gson gson = new Gson(); 
    Type type = (new TypeToken<List<T>>() {}).getType(); 
    return gson.fromJson(json, type); 
} 

:

parser.<Quote>deserializeList(result) 

내가 무엇입니까 결과가 그러나 나는 GSON을 사용하려고이 같은 일반적인 방법을 구현 한

이 :

enter image description here

그리고 때

java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to model.Quote 

json으로 문자열은 다음과 같습니다 :

[ 
    { 
     "id": 269861, 
     "quote": "People living deeply have no fear of death.", 
     "author": "Anais Nin", 
     "genre": "life", 
     "tag": null, 
     "createdAt": "2016-04-16T13:13:36.928Z", 
     "updatedAt": "2016-04-16T13:13:36.928Z" 
    } 
] 
+0

필자는 그 방법을 타입 매개 변수 –

+0

@ cricket_007과 상관없이 상관없이 호출 할 것이라고 생각하지 않습니다. - parser.deserializeList (result) – codebased

+0

그건 제가 생각한 것입니다. 클래스 정의에서'T'는 무엇입니까? 부차적 인 질문, 당신은 개조를 사용할 수 있습니까? –

답변

1

나는 그렇게 명시 적으로 Type

public <T> List<T> deserializeList(String json, Type type) { 
    Gson gson = new Gson(); 
    return gson.fromJson(json, type); 
} 
을 제공하는 것처럼 당신이 방법을 쓸 수 생각 개체에 액세스하려고,이 오류가 발생합니다

(new TypeToken<List<Model>>() {}).getType(); 주위를 지나치는 것이 조금 어수선 해 보입니다.

나는 유형 삭제에 익숙하지 않지만 문제와 관련이 있다고 생각합니다.

관련 문제