Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Jackson将HashMap转换为JsonNode?_Java_Json_Jackson - Fatal编程技术网

Java 如何使用Jackson将HashMap转换为JsonNode?

Java 如何使用Jackson将HashMap转换为JsonNode?,java,json,jackson,Java,Json,Jackson,我有一个HashMap对象,我想使用com.fasterxml.jackson.databind.ObjectMapper将其转换为JsonNode树。最好的方法是什么 我发现了下面的代码,但由于我对jacksonapi不太了解,我想知道是否有更好的方法 mapper.reader().readTree(mapper.writeValueAsString(hashmap)) 以下步骤可以实现此目的: JsonNode-JsonNode=mapper.convertValue(map,JsonNo

我有一个
HashMap
对象,我想使用
com.fasterxml.jackson.databind.ObjectMapper
将其转换为
JsonNode
树。最好的方法是什么

我发现了下面的代码,但由于我对jacksonapi不太了解,我想知道是否有更好的方法

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;

对于Hashmap无法实现的情况,您需要JsonNode实例做什么?我认为您应该为循环和手动转换它:)。。。有些人认为当你尝试用自动函数转换时是错误的,因为你的对象可能没有正确地使用所需的函数。这个答案稍微优雅一点。IMHO:它与传统的有什么不同?