我正在尝试使用 Gson 来初始化我的字段,但没有成功。
String complex = "{'menu': { 'id': 'file', 'value': 'File', 'popup': { 'task':
[ {'value': 'New', 'onclick': 'CreateNewDoc()'}, {'value': 'Open', 'onclick': 'OpenDoc()'}, {'value': 'Close', 'onclick': 'CloseDoc()'}]
}}}";
尝试这样做:
TasksHolder th = gson.fromJson(complex, TasksHolder.class);
任务持有者类:
public class TasksHolder {
List<Task> task;
public TasksHolder() {
task = new ArrayList<Task>();
}
}
请指教如何才能使 TaskHolder
的 task
得到填充。
最佳答案
问题是通用类型删除。 GSON 不知道要创建什么类型的对象,因为您的类只包含一个列表(有关 Task
的类型信息丢失)。
这是 how to deal with this problem in GSON :
Type listType = new TypeToken<List<Task>>() {}.getType();
List<Task> tasks = gson.fromJson(myTasks, listType);
但这对您没有帮助,因为您需要父对象,而不仅仅是列表。恐怕你得write your own Custom Serialization and Deserialization methods
关于java - 使用 Gson 从 JSON 初始化类的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4585752/