与Jackson嵌套JSON到Java Mapping

时间:2016-08-25 19:14:36

标签: java json jackson

我有一个像这样的json结构:

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

我们使用Jackson执行json-to-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 个答案:

答案 0 :(得分:0)

这看起来像一个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>进行序列化。