2012-06-07 3 views
5

실패 :간단한 Gson.fromJson의 예는 다음 코드를 감안할 때

final class retVal { int photo_id; } 
Gson gson = new Gson(); 
retVal ret = gson.fromJson("{\"photo_id\":\"383\"}", retVal.class); 

내가 nullret 세트를 가져옵니다.

을 통한 수작업으로 작동하지만 클래스가있는 toJson도 실패하므로 분명히 놓친 것 같습니다.

답변

5

클래스 외부에 retVal을 선언하십시오.

+0

찰흙을! 나는 그것이 어리석은 실수 였음을 알았다. 고마워. 고마워. 왜 * 작동하는지 설명해 주시겠습니까? –

+3

GSON은 로컬 클래스의 비 직렬화를 허용하지 않습니다. – Rajesh

1

Gson을 사용하면 개체를 직렬화하는 데 도움이됩니다. 그래서, 먼저 객체가 필요합니다. 당신의 접근 방식을 기반으로, 당신은 문자열에서 개체를 다시 검색하려면

RetVal myRetVal = new RetVal(); 
Gson gson = new Gson(); 
String gsonString = gson.toJson(myRetVal); 

같은 것을하고 싶지 :

Gson gson = new Gson(); 
RetVal myNewRetValObj = gson.fromJson(gsonString, RetVal.class); 
+0

질문에서 언급했듯이 toJson도 실패하고 문자열은 REST API에서 비롯됩니다. 이 코드는 표준'JSONObject' 클래스에서 잘 작동하지만, 어떻게 작동하는지 Gson과 리팩터링한다고 생각했습니다. –

+0

오케이, 미안, 내가 틀렸어. – stpn108

관련 문제