杰克逊:将JSON响应映射到多个bean

时间:2012-02-27 12:12:14

标签: java json jackson

我有一个有多种类型的json。示例:

{ 
  "Type1":{"name:":"abc","age":23},
  "Type2":{"count":0, "id":"abcd"}
}

我想要映射到类“Type1”和“Type2”。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

尝试使用构造函数重载

Class MainType () {
  MainType(String name, int age) {
    Type1  type1 = new Type1();
  }

  MainType(int count, String id) {
    Type2  type2 = new Type2();
  }
}

....你的Type1和Type2类就在这里。

答案 1 :(得分:1)

我猜最简单的方法是创建一个Wrapper Bean

public class WrapperBean{
    private Bean1 bean1;
    private Bean2 bean2;
    // getters, setters
}

答案 2 :(得分:0)

您是在谈论json数据从客户端传输到服务器的情况吗?

@RequestMapping("/performTest.json")
    public @ResponseBody String performTest(@RequestBody List<Object> jsonData){
List<Bean> beanList=new ArrayList<Bean>();        
for(Object obj:jsonData){
                LinkedHashMap<String,Object> map=(LinkedHashMap<String,Object>)obj;

Bean bean=new Bean();
bean.setName(map.get("name"));
bean.setAge(map.get("age"));
beanList.add(bean);
}

请注意这不是最佳解决方案,而是解决问题的另一种方法。当您获得解决此问题的最终方法时,请更新我们。