java - 反序列化以对象 ID 作为对象名称的 JSON 对象列表

标签 java json gson

所以我从 Nest API 得到了这个有趣的 Json,我需要解析它,但遇到了困难。显然,我无法控制 JSON。

{
    "uyuyuyuuyieiehuhuhuhenne": {
        "name": "Cabin",
        "country_code": "US",
        "postal_code": "94304",
        "time_zone": "America/Los_Angeles",
        "away": "home",
        "structure_id": "uyuyuyuuyieiehuhuhuhenne"
    },
    "ryryryyryryyryrryyryryyr": {
        "name": "Boulder Home",
        "country_code": "US",
        "postal_code": "80302",
        "time_zone": "America/Denver",
        "away": "away",
        "structure_id": "ryryryyryryyryrryyryryyr"
    }
}

对象名称是对象的 ID。我有一个名为“结构”的对象,其中包含一个列表,但我在结构的转换中没有得到任何结果。

最佳答案

假设你有一个像这样的 POJO:

@Getter
public class Structure {
    private String name;
    private String country_code;
    private String postal_code;
    private String time_zone;
    private String away;
    private String structure_id;
}

您可以使用 Gson TypeToken 将此 JSON 反序列化为 Map,如下所示:

Type t = new TypeToken<Map<String, Structure>>() {}.getType();
Map<String, Structure> map = new Gson().fromJson(JSON, t);

换句话说,您的 JSON 是 Structure 的映射,其中每个 Structurestructure_id 作为键。

关于java - 反序列化以对象 ID 作为对象名称的 JSON 对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53140848/

相关文章:

java - 强制 GSON 一般使用包含 Setter 或 Setter 的构造函数,而不是 Fields

java - 如何测试从数据库读取并写入文件的 Spring Batch 步骤?

由于构建路径不正确,Java/Scala 导入无法正常工作?

java - 如何使用响应格式根据参数而变化的改造?

java - 如何通过 JSON 值设置 Spinner 的选定项?

java - 如何在 Gson 中制作自定义列表反序列化器?

java - gson 抛出 MalformedJsonException

java - 从 Jquery 调用 Bean 方法

Java 井字棋架构

json - 解析Flash JSON响应(Delphi/TWebbrowser)