【问题标题】:Convert JSON to Java POJO将 JSON 转换为 Java POJO
【发布时间】:2020-07-28 11:38:01
【问题描述】:

我尝试使用 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;
        }

【问题讨论】:

    标签: java json jackson objectmapper fasterxml


    【解决方案1】:

    尝试使用

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

    【讨论】:

      【解决方案2】:

      在我看来是这样的

      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)解析它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-27
        • 2019-06-25
        • 2019-07-06
        • 1970-01-01
        • 1970-01-01
        • 2021-10-27
        • 2020-12-10
        • 1970-01-01
        相关资源
        最近更新 更多