我有以下 POJO:
public class POJO {
private final String id;
private final String name;
// constructor, getters omitted
}
这是我的 JSON:
{
"name":"foo"
}
我id
从代码中的其他地方获取值。
我想以id
某种方式将我的外部值与 JSON 结合起来,因此杰克逊可以构建一个POJO
包含这两个值的实例。
这是一些示例代码:
public void deserialize() {
ObjectMapper om = new ObjectMapper();
String id = "123";
String json = "{\"name\":\"foo\"}";
POJO pojo = om.readValue(json, POJO.class);
System.out.println(pojo.getId());
System.out.println(pojo.getName());
}
我怎样才能告诉杰克逊设置id
值?
我已经知道我可以使用om.readTree(json)
然后将其转换为ObjectNode
然后put("id", id)
然后创建一个om.readerFor(POJO.class)
并调用readValue(objectNode)
. 但我猜杰克逊现在会做两次它的工作。
有没有其他方法可以简单地注入一些外部属性?