Java 如何在Jackson中将对象序列化为ObjectNode的值?
我正在使用Java 如何在Jackson中将对象序列化为ObjectNode的值?,java,json,servlets,jackson,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.a
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
值周围。他们为这些操作添加了一个新方法。ObjectNode.put(string,JsonNode)
请尝试使用
resNode.set(“appObject”,appObject);
ObjectNode.put()已被弃用Javadoc声明您应该使用set(String,JsonNode)
或replace(String,JsonNode)
。您尝试过其中任何一种吗?@user3567830:谢谢:)我没有看到。我现在找到了。。再次感谢:)