我正在尝试一些非常简单的事情,它应该起作用:
任何人都可以评论为什么我能够序列化json但不能反序列化它并让我的对象回来。
类
public class ConfigJsonObj {
public List<ConfigJson_InvitesPending> invites_pending;
public ConfigJsonObj() {
invites_pending = new ArrayList<ConfigJson_InvitesPending>();
}
public ConfigJsonObj(List<ConfigJson_InvitesPending> invitesPendings) {
invites_pending = new ArrayList<ConfigJson_InvitesPending>();
if (invitesPendings!=null) {
invites_pending.addAll( invitesPendings);
}
}
}
public class ConfigJson_InvitesPending {
public String toDisplayName;
public ConfigJson_InvitesPending() {}
public ConfigJson_InvitesPending(String toName) {
toDisplayName = toName;
}
}
要序列化的代码
String json = gson.toJson(configJsonObjObject);
Json生成
{
"invites_pending": [
{
"toDisplayName": "London"
}
]
}
反序列化代码
ConfigJsonObj obj = gson.fromJson(json, ConfigJsonObj.class);
return obj;
当我在上面调用gson.fromJson(...)时出现异常:
java.lang.NoClassDefFoundError
more.nmspace.dto.ConfigJsonObj
我不知道为什么我没有找到类def def错误!
答案 0 :(得分:0)
好的,在2个晚上度过这个错误后,现在就开始工作了!
我在另一个ParseObject类中使用了Gson序列化/反序列化代码,它给了我错误。
例如
@ParseClassName("MyParseObject")
public class MyParseObject extends ParseObject {
public void setConfigJsonObj(ConfigJsonObject configJsonObj) {
String json = (new Gson).toJson(configJsonObj);
put("config_json",json);
}
public ConfigJsonObject getConfigJsonObject() {
String config_json = getString("config_json");
ConfigJsonObject obj = (new Gson).fromJson(config_json,ConfigJsonObject.class);
return obj;
}
}
我想封装对象&lt; - &gt; json转换为dto类,但在这种情况下无法完成。
所以现在我已经替换了上面的代码并在MyParseObject类外部进行了序列化/反序列化,我将json直接传递给它,而不是自定义对象。
希望这也有助于其他人。 干杯