我们有一个json,对于一个特定的字段,数据类型是不同的。我想用jackson将它映射到Java对象。如果字段是一种类型,我可以做到。但是对于不同的类型找不到方法。
{
"firstname": "first_name",
"age": "34",
"add_info": [{
"type": "type_a",
"value": "value_a"
},
{
"type": "type_b",
"value": [{
"title": "info_1",
"desc": "desc_1"
},
{
"title": "info_2",
"desc": "desc_2"
}
]
}
]
}
基本上这个POJO我不知道怎么定义它
public class AddInfo {
private String type;
private List<Value> value = null;
//getter and setters
}
在上面的JSON for add_info字段中,它包含一个JSON对象数组,其中第一个对象值是string类型,第二个值包含一个对象数组。
如何使用jackson处理Pojo的这种情况
如果不想编写自定义反序列化程序,只需使用对象字段:
public class AddInfo {
public String type;
public Object value;
public static void main(String[] args) throws Exception {
ObjectMapper om = new ObjectMapper();
AddInfo i1 = om.readValue("{\"value\":\"string\"}", AddInfo.class);
System.out.println(i1.value);
AddInfo i2 = om.readValue("{\"value\":[{\"x\":1}]}", AddInfo.class);
System.out.println(i2.value);
}
}
在第一次运行中,i1。值是一个字符串。在第二轮中,i2。值是哈希映射的列表。所以你松开了Pojo结构。
我正在Java中使用jackson库。
我有一个restendpoint,它返回3级嵌套json,如下所示: 我有一个java类,没有相同的3个嵌套级别: 当我使用restTemplate拨打rest电话时: jackson甚至没有使用json ignore属性映射字段departName(因为我猜它不在同一嵌套级别)。 如何将这个http json响应映射到忽略嵌套父json的java字段?
我正在编写一个JSON接口/库,用于Bugzilla的webservice。 这可以使用注释或其他内容吗?还是要为每个这样的实例编写一个自定义反序列化程序? 我试着做了一些研究,发现了一些关于值实例化器或使用构造函数的信息,但使用构造函数不是反bean吗?我发现新特性的文档很少或难以理解。 示例: 我对一个字段使用pojo的原因是,这个用户类是由另一个具有更多字段的用户类扩展的。虽然我可以实现一个
假设我有这样的物体 我正在使用RestTemboard类从URL中获取json,如下所示: 之后,我想使用jackson对象映射器将json字符串转换为一个对象 将实体类作为第二个参数传递 问题是我应该如何编写ExampleJson实体来处理get-Showed json?我试过这样上课,但似乎不管用。 我得到了这样一个例外:
考虑以下POJO: 使用MapSTRt,我创建了一个映射器,将映射到。由于“业务”“逻辑”,我需要将和约束为的和字段值。这是我使用另一个类得出的结论: 有没有其他方法可以实现这一点(即另一种映射器、装饰器等)?如何将多个值(xml附表、讲座)传递给映射器?
我不想映射变量。是否有任何方法可以配置映射器,使其忽略此字段? 我知道我可以编写自定义数据映射器或使用流式API,但我想知道是否可以通过配置来实现?