从 JSON 字符串创建对象节点

2022-09-03 06:37:09

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

我试过了:

ObjectNode json = new ObjectMapper().readValue("{}", ObjectNode.class);

但是得到

线程“main” com.fasterxml.jackson.databind.JsonMappingException: Conflicting setter definition for property “type”: jdk.nashorn.internal.ir.Symbol#setType(1 params) vs jdk.nashorn.internal.ir.Symbol#setType(1 params)

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


答案 1

您使用了错误的导入。

它应该是

com.fasterxml.jackson.databind.node.ObjectNode

不:

jdk.nashorn.internal.ir.ObjectNode

答案 2

首先,错误消息表明您正在绑定构建一个 ,而我猜您实际上打算构建一个(用于Jackson 2.x)。检查您的导入。jdk.nashorn.internal.ir.ObjectNodecom.fasterxml.jackson.databind.node.ObjectNode

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

JsonNodeFactory.instance.objectNode()

如果出于某种原因,您确实想通过解析空的JSON对象来执行此操作,请使用以下命令:

ObjectNode json = (ObjectNode) new ObjectMapper().readTree("{}");

但那只是令人不快。