Jackson Jsonparser不允许我指定字段命名策略?

时间:2013-10-07 23:02:32

标签: java json jackson

ObjectMapper mapper = new ObjectMapper();
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);

我在构造函数下从intellij收到错误和编译器警告,并且在尝试编译它时说

java: no suitable method found for configure(org.codehaus.jackson.JsonParser.Feature,boolean) method


(actual argument org.codehaus.jackson.JsonParser.Feature cannot be converted to com.fasterxml.jackson.core.JsonGenerator.Feature by method invocation conversion)

此方法及其具有这些参数的构造函数也会出现并且可用于智能感知。

有人能想到这个废话的原因吗?

感谢您的帮助,我似乎无法弄清楚问题是什么。

- 亚当

1 个答案:

答案 0 :(得分:5)

如果查看ObjectMapper的文档,您可以清楚地看到它指定了具有以下类型签名的configure方法:

configure(JsonParser.Feature f, boolean state)

但是,您似乎使用了两种不同版本的Jackson。一个来自codehaus,另一个来自fastxml,如错误中的第二行所示。要对此进行测试或暂时解决此问题,请尝试执行此操作:

mapper.configure(com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);

或相反地,实例化另一个ObjectMapper:

org.codehaus.jackson.map.ObjectMapper mapper = new org.codehaus.jackson.map.ObjectMapper();

编辑:要清楚,请执行以上操作之一,而不是两者!