我正在尝试提高ObjectMapper的重用性,并且我目前正在考虑移动以下代码:

ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule().addSerializer(WeirdStuff.class, new WeirdStuffToStringSerializer());

mapper.registerModule(module);
ObjectNode results = mapper.createObjectNode();


results.set("field1", mapper.valueToTree(myClass.getField1()));
results.set("field2", mapper.valueToTree(myClass.getField2()));


共享的ObjectMapperObjectWriter,但是,很难找到使用ObjectReader和Writer的示例。查看JavaDocs,我也找不到与valueToTree等效的ObjectWriter。

有没有一种方法可以使用ObjectWriter创建ObjectNodes

最佳答案

valueToTreeconvertValue中找不到在ObjectMapper上找到的任何转换方法(例如ObjectWriterObjectReader等),因为它们需要序列化和反序列化功能。

要回答从ObjectNode创建ObjectWriter的问题,答案是否定的。 ObjectWriter用于序列化,创建JsonNode用于反序列化。使用ObjectReader,您可以通过获取NodeFactory来创建它们:

objectReader.getConfig().getNodeFactory().objectNode()

07-26 02:53