如何将 Java 对象放入 Jackson 中的 ObjectNode?

How to put Java object to ObjectNode in Jackson?

我正在以编程方式编写 ObjectNode,并用 put(String propertyName...) 方法填充它的字段。现在我想添加一个子对象,我已经以 Java 对象的形式拥有它。如何做到这一点?

我没有put(String propertyName, Object value)方法,怎么办?

我可以创建

JsonNode node = mapper.valueToTree(myObject);

但是我又没有put(String propertyName, JsonNode node)方法。

如何完成?

可以使用set(String propertyName, JsonNode node)方法。

尝试使用 set(String, JsonNode) 而不是 put。示例如下:

Car car = new Car();
car.setName("My car");
car.setYear("2022");

ObjectMapper mapper = new ObjectMapper();

ObjectNode baseNode = mapper.createObjectNode();
ObjectNode carNode = mapper.valueToTree(car);

baseNode.put("hello", "world");
baseNode.set("car", carNode);

System.out.println(baseNode.toPrettyString());