我使用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
值附近作为字符串值。
答案 0 :(得分:3)
他们为这些行动添加了一种新方法。 ObjectNode.put(String, JsonNode)
请改为resNode.set("appObject", appObject);
。
答案 1 :(得分:0)
ObjectNode.put()已弃用