如何在Jackson中将对象序列化为ObjectNode的值?

Ali*_*hri 5 java json servlets jackson

jackson用来将我的对象序列化为json。我正在使用以下代码:

ObjectMapper mapper = new ObjectMapper();
JsonNodeFactory nodeFactory = new JsonNodeFactory(false);
ObjectNode resNode = new ObjectNode(nodeFactory);

SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(ApplicationVersion.class, new SingleApplicationSerializer());
mapper.registerModule(simpleModule);
JsonNode appObject = mapper.valueToTree(appVersion);

resNode.put("status", true);
resNode.put("appObject", appObject);     //This put method is deprecated.
Run Code Online (Sandbox Code Playgroud)

但是,我看到了put与方法JsonNode超载deprecated.Why以下的重载put方法已经过时:

public JsonNode put(String fieldName, JsonNode value);
Run Code Online (Sandbox Code Playgroud)

有什么替代方法?


我也试过这个:

String jsonStr = mapper.writeValueAsString(appVersion);
resNode.put("status", true);
resNode.put("appObject", jsonStr);
Run Code Online (Sandbox Code Playgroud)

但是此方法"appObject值周围将双引号()作为字符串值。

小智 6

他们为这些操作添加了新方法。 ObjectNode.put(String, JsonNode)

试试吧resNode.set("appObject", appObject);