从JSON字符串创建ObjectNode

Pet*_*tah 6 java json jackson

我如何使用Jackson从字符串创建ObjectNode?

我试过了:

ObjectNode json = new ObjectMapper().readValue("{}", ObjectNode.class);
Run Code Online (Sandbox Code Playgroud)

但是得到

线程“主”中的异常com.fasterxml.jackson.databind.JsonMappingException:属性“类型”的设置器定义冲突:jdk.nashorn.internal.ir.Symbol#setType(1 params)vs jdk.nashorn.internal.ir.Symbol #setType(1个参数)

我希望能够读取JSON字符串并添加/修改一些值。

ska*_*man 7

首先,错误消息表明您要构建一个jdk.nashorn.internal.ir.ObjectNode,而我猜您实际上打算构建一个com.fasterxml.jackson.databind.node.ObjectNode(对于 Jackson 2.x)。检查您的进口。

但是,如果您只想构建一个空的ObjectNode,那么只需使用

JsonNodeFactory.instance.objectNode()
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因你真的想通过解析一个空的 JSON 对象来做到这一点,那么使用这个:

ObjectNode json = (ObjectNode) new ObjectMapper().readTree("{}");
Run Code Online (Sandbox Code Playgroud)

但这只是不愉快。


Pet*_*tah 6

您使用了错误的导入。

它应该是

com.fasterxml.jackson.databind.node.ObjectNode
Run Code Online (Sandbox Code Playgroud)

不:

jdk.nashorn.internal.ir.ObjectNode
Run Code Online (Sandbox Code Playgroud)