将 JSON 转换为 Java POJO

Convert JSON to Java POJO

我尝试使用 Jackson FasterXML 库 ObjectMapper,

将JSON转换为下面的Java Pojo,

但找不到方法,例如下面的情况。

            {
            "uniqueID1": {
                "var1": true,
                "var2": 0.0,
                "var3": "cash",
                "vars": {
                    "0": {
                        "varsvar1": "cash",
                        "varsvar2": {
                            "0": {
                                "varsvarvar1": "cash"
                            },
                            "1": {
                                "varsvarvar1": "cheque"
                            }
                        }
                    },
                    "1": {
                        "varsvar1": "cash",
                        "varsvar2": {
                            "0": {
                                "varsvarvar1": "cash"
                            },
                            "1": {
                                "varsvarvar1": "cheque"
                            }
                        }
                    }
                }
            },
            "uniqueID2": {
                "var1": true,
                "var2": 0.0,
                "var3": "cash",
                "vars": {
                    "0": {
                        "varsvar1": "cash",
                        "varsvar2": {
                            "0": {
                                "varsvarvar1": "cash"
                            },
                            "1": {
                                "varsvarvar1": "cheque"
                            }
                        }
                    },
                    "1": {
                        "varsvar1": "cash",
                        "varsvar2": {
                            "0": {
                                "varsvarvar1": "cash"
                            },
                            "1": {
                                "varsvarvar1": "cheque"
                            }
                        }
                    }
                }
            },
            .... can be a lot with different unique id ... 
        }

唯一ID 1和唯一ID 2是唯一的,

“0”、“1”、“0”、“1”也是唯一ID,

并且可以有无限个唯一ID,

所以我们不能用它作为变量名。

在Json里面也有Json在Json里面,有3个深度。

我创建了 6 个 Java Pojo 类 到,

代表每个Json.

如何使用ObjectMapper把上面的Json转换成下面这6个类?

或者不可以,我们应该使用其他库?

        public class Pojo1{
            private String uniqueIDPojo1;
            private Pojo2 pojo2;
        }
        
        public class Pojo2{
            private boolean var1;
            private double var2;
            private String var3;
            private Map<String,Pojo3> vars;
        }
        
        public class Pojo3{
            private String uniqueIDPojo3;
            private Pojo4 pojo4;
        }
        
        public class Pojo4{
            private String varsvar1;
            Map<String,Pojo5> varsvar2;
        }
        
        public class Pojo5{
            private String uniqueIDPojo5;
            private Pojo6 pojo6;
        }
        
        public class Pojo6{
            private String varsvarvar1;
        }

尝试使用

HashMap<String,Pojo2> pojos = new ObjectMapper().readValue(src, new TypeReference<HashMap<String,Pojo2>>() {});

我觉得像

class VarMap {
    Map<String, Var> varmap;
}
class Var {
    boolean var1;
    double var2;
    String var3;
    Map<String, VarVar> vars;
}
class VarVar {
    String varsvar1;
    Map<String, VarsVarVar> varsvar2;
}
class VarsVarVar {
    String varsvarvar1;
}

你应该可以用 objectMapper.readValue(in, VarMap.class).

来解析