首页 > 解决方案 > 用 Java 设计 JSON

问题描述

我有一个以以下格式返回 JSON 的 API。需要为此设计Java类。这些值会有所不同。因此无法创建具有固定属性的 java 类。JSON 为:

 {
        "jan": {
            "2020-01-01": {
                "A": 348,
                "B": 408
            },
            "2020-01-02": {
                "A": 348,
                "B": 408   
            }
        },
        "feb": {
            "2020-02-01": {
                "A": 348,
                "B": 408
            },
            "2020-02-02": {
                "A": 348,
                "B": 408
            }  
     
        }       
    }   

如何为此在 Spring Boot/Java 中设计对象?

标签: javajsonspring-boothibernatespring-data-jpa

解决方案


我了解到您正在寻找一个用于反序列化您共享的 JSON 结构的 java 类。这在我看来像

Map<String, Map<String, Data>> 

在哪里

class Data {
   private int A;
   private int B;
}

现在,如果您想使用例如 jackson 对其进行反序列化,您可以使用

new ObjectMapper().readValue(myJson, new TypeReference<Map<String, Map<String, Data>>>() {});

推荐阅读