How to serialize an object as an ObjectNode value in Jackson?

I use jacksonto serialize my object as json. I am using the following code:

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.

But I saw that the putoverload method is JsonNodeout of date. Why after method overloading is putdeprecated:

public JsonNode put(String fieldName, JsonNode value);

What is the alternative for this?


Also I tried this:

String jsonStr = mapper.writeValueAsString(appVersion);
resNode.put("status", true);
resNode.put("appObject", jsonStr);

But this method puts a double quote ( ") around the value appObjectas a string value.

+5
source share
2 answers

They added a new method for these actions. ObjectNode.put(String, JsonNode)

Try instead resNode.set("appObject", appObject);,

+3
source

ObjectNode.put () is deprecated

0

Source: https://habr.com/ru/post/1570025/


All Articles