有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Jackson的嵌套JSON到Java映射

我有这样一个json结构:

   [
       {
        "param1": "one",
        "param2": "two",
        "nestedStruct1": {
            "param1": "one",
            "param2": "two",
            "param3": "three"
        },
    }
]

我们使用Jackson来执行json到java对象的处理。我不确定如何创建支持这种嵌套json构造的相应java类

按照以下内容创建两个单独的类是否足够:

public class Outside {
    private String param1 = null;
    private String param2 = null;
    private Inside inside = new Inside();

    // appropriate getters and setters  
}

public class Inside {
    private String param1 = null;
    private String param2 = null;
    private String param3 = null;

    // appropriate getters and setters
}

任何见解都将不胜感激。谢谢


共 (1) 个答案

  1. # 1 楼答案

    这看起来像一个JSON数组(嗯,它的格式不正确),它的一个元素可以由ObjectMapper直接从/序列化到下面的类结构。我们一直在使用这种嵌入式结构。元素必须是公共的(或者有相应的getter/setter),或者,如果我没有弄错的话,至少是受保护的。请注意,嵌入式结构的字段名需要与JSON中的字段名对应:

    public class Element {
      public String param1;
      public String param2;
      public Embedded nestedStruct1 = new Embedded();
    
      public static class Embedded {
        public String param1;
        public String param2;
        public String param3;
      } 
    }
    

    整个数组可以从列表List<Element>进行(反)序列化