【发布时间】:2015-03-03 06:33:19
【问题描述】:
我正在使用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.
但是我看到JsonNode 重载的put 方法已被弃用。为什么不推荐使用put 方法的以下重载:
public JsonNode put(String fieldName, JsonNode value);
有什么替代方法?
我也试过这个:
String jsonStr = mapper.writeValueAsString(appVersion);
resNode.put("status", true);
resNode.put("appObject", jsonStr);
但此方法将双引号 (") 放在 appObject 值周围作为字符串值。
【问题讨论】:
-
Javadoc 声明您应该使用
set(String,JsonNode)或replace(String,JsonNode)。你试过这些吗? -
@user3567830:谢谢 :) 我没看到。我现在找到了。 Documentation Link。再次感谢:)
标签: java json servlets jackson