考虑下面的代码:最简单的例子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