从JSON字符串

时间:2015-05-06 22:12:11

标签: java json jackson

如何使用Jackson创建一个字符串的ObjectNode?

我试过了:

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

但是得到

  

线程中的异常" main" com.fasterxml.jackson.databind.JsonMappingException:属性的冲突setter定义" type":jdk.nashorn.internal.ir.Symbol #setType(1 params)vs jdk.nashorn.internal.ir.Symbol# setType(1 params)

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

2 个答案:

答案 0 :(得分:3)

您使用了错误的导入。

应该是

com.fasterxml.jackson.databind.node.ObjectNode

jdk.nashorn.internal.ir.ObjectNode

答案 1 :(得分:2)

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

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

即可
JsonNodeFactory.instance.objectNode()

如果由于某种原因你真的希望通过解析一个空的JSON对象来实现它,那么使用它:

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

但这只是令人不快。