java - Json 反序列化对象到列表 - 这是真的吗?

标签 java json gson

假设我们有这样的 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/

相关文章:

java - Mac 版 Eclipse 中的 JOGL

java - 设置页面-设置组合结果

javascript - 获取 JSON 对象中的所有路径

java - OkHttp:一个简单的 GET 请求:response.body().string() 返回 json 内不可读的转义 unicode 符号无法转换为 gson

java - 如何根据特殊字符将句子拆分为单词

sql - 在 SQL Server 中连接嵌套的 JSON

php - swift 错误 : Error Domain=NSCocoaErrorDomain Code=3840 "Problems with my Login Controller "

java - 更新 json 数组文件中的值

java - 使用 GSON 将 POJO 序列化为 JSON

java - 如何创建一个检查这些值的循环?