假设我们有这样的 JSON 对象:
{
"employees" : {
"Mike" : 23,
"Bill" : 42,
"Jimmy" : 30
}
}
接下来的类(class):
public class Employees {
private List<Employee> employees;
}
public class Employee {
private String name;
private int age;
}
我们有什么方法可以将json反序列化为Employees类型对象吗?
最佳答案
List 可用于反序列化元素数组 [...]
但 {...}
是对象。如果您愿意,可以考虑使用 Map
而不是 List
class Data {
Map<String,String> employees;
}
...
Gson gson = new Gson();
Data data = gson.fromJson(json, Data.class);
for (Map.Entry<String, String> emp: data.employees.entrySet())
System.out.println(emp.getKey()+" -> "+emp.getValue());
输出:
Mike -> 23
Bill -> 42
Jimmy -> 30
<小时/>
如果您想使用这些类解析 json
public class Employees {
private List<Employee> employees;
}
public class Employee {
private String name;
private int age;
}
您的数据应如下所示:
{
"employees" : [
{"name":"Mike", "age": 23},
{"name":"Bill", "age": 42},
{"name":"Jimmy", "age": 30}
]
}
关于java - Json 反序列化对象到列表 - 这是真的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28295782/