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

时间:2015-01-05 17:01:17

标签: 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.

但我看到put方法带有JsonNode重载已被弃用。为什么不推荐使用put方法的重载:

public JsonNode put(String fieldName, JsonNode value);

有什么替代方案?


我也尝试过这个:

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

但是这个方法将双引号(")放在appObject值附近作为字符串值。

2 个答案:

答案 0 :(得分:3)

他们为这些行动添加了一种新方法。 ObjectNode.put(String, JsonNode)

请改为resNode.set("appObject", appObject);

答案 1 :(得分:0)

ObjectNode.put()已弃用