簡體   English   中英

如何在Jackson中將對象序列化為ObjectNode的值?

[英]How serialize an object as a value to ObjectNode in 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.

但是我不贊成使用帶有JsonNode重載的put方法。 JsonNode不建議使用以下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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM