我有一个Map<Integer, Map<Class<?>, Serializable>>
,我试图将其存储为JSON字符串。然后,稍后,我试图从相同的JSON格式的字符串中读取以重新创建对象。你会如何使用GSON做到这一点?
答案 0 :(得分:1)
而不是使用Map of Map尝试使用类结构。
或者您可以使用以下库来实现相同目的。
com.google.gson.Gson.Gson()
使用以下方法:
public static String getJSONString(Object jsonObject)
{
if(jsonObject == null) return "";
return new Gson().toJson(jsonObject);
}
答案 1 :(得分:0)
在尝试序列化Map<Integer, Map<Class<?>, Serializable>>
时,您根本不会遇到任何问题,问题是在尝试反序列化JSON时。我想你可以为Class<?>
编写自己的反序列化器,具体取决于你的实际需要,但不能反序列化Serializable
。
Serializable
不是具体的类,它是一个接口。您无法实例化Serializable
,只能实例化实现Serializable
的具体类。当然,你可以通过在序列化的JSON中包含具体的类信息来为Serializable
编写自己的自定义序列化器/反序列化器,但是你需要包含所有可能实现Serializable
的类,这根本不可行。