用Java设计JSON

问题描述

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

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

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

解决方法

我了解您正在寻找一个Java类来反序列化您共享的JSON结构。在我看来,这是

Map<String,Map<String,Data>> 

哪里

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

现在,如果要使用杰克逊等反序列化,则可以使用

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