考慮下面的代碼:最簡單的例子Gson.fromJson失敗
final class retVal { int photo_id; }
Gson gson = new Gson();
retVal ret = gson.fromJson("{\"photo_id\":\"383\"}", retVal.class);
我得到ret
設置爲null
。
我敢肯定,我錯過了一些明顯的事情,因爲toJson
與一個類也失敗了,雖然通過JsonObject
工作手工施工。
考慮下面的代碼:最簡單的例子Gson.fromJson失敗
final class retVal { int photo_id; }
Gson gson = new Gson();
retVal ret = gson.fromJson("{\"photo_id\":\"383\"}", retVal.class);
我得到ret
設置爲null
。
我敢肯定,我錯過了一些明顯的事情,因爲toJson
與一個類也失敗了,雖然通過JsonObject
工作手工施工。
在方法外聲明您的類retVal
。
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);
正如我在問題中提到的,'toJson'也失敗了,字符串來自REST API。該代碼可以與標準的'JSONObject'類一起工作,但我想我會用'Gson'來重構它的工作原理。 –
好的,對不起,我弄錯了。 – stpn108
衛生署!我知道這應該是一個愚蠢的錯誤。這有用,謝謝。你能解釋一下爲什麼它能起作用嗎? –
GSON不允許本地類的反序列化。 – Rajesh