如何使用Jackson将HashMap转换为JsonNode?
我有一个对象,我想使用转换为树。最好的方法是什么?HashMap
JsonNode
com.fasterxml.jackson.databind.ObjectMapper
我找到了以下代码,但由于我不太了解Jackson API,我想知道是否有更好的方法。
mapper.reader().readTree(mapper.writeValueAsString(hashmap))
我有一个对象,我想使用转换为树。最好的方法是什么?HashMap
JsonNode
com.fasterxml.jackson.databind.ObjectMapper
我找到了以下代码,但由于我不太了解Jackson API,我想知道是否有更好的方法。
mapper.reader().readTree(mapper.writeValueAsString(hashmap))
以下操作将解决问题:
JsonNode jsonNode = mapper.convertValue(map, JsonNode.class);
或者使用评论中指出的更优雅的解决方案:
JsonNode jsonNode = mapper.valueToTree(map);
如果您需要将 您的写为字符串,请使用:jsonNode
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonNode);
首先在 JsonNode 中转换您的映射:
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNodeMap = mapper.convertValue(myMap, JsonNode.class);
然后使用 set 方法将此节点添加到 ObjectNode:
myObjectNode.set("myMapName", jsonNodeMap);
要从 JsonNode 转换为 ObjectNode,请使用:
ObjectNode myObjectNode = (ObjectNode) myJsonNode;