为SerializationFeature.INDENT_OUTPUT配置jackson映射器对象时出错

Hor*_*ice 2 java json jackson

我试图将我创建的名为User的域对象序列化为json文件.

ObjectMapper mapper = new ObjectMapper();
List<User> users = new ArrayList<User>();

    users.add(user1);
    users.add(user2);
    users.add(user3);

mapper.writeValue(file, users);         
Run Code Online (Sandbox Code Playgroud)

以上工作正常,并以不友好的单行方式将数据写入文件.我想在写入文件时美化它.所以我遇到了SerializationFeature.INDENT_OUTPUT,但由于某些原因,这不是为我编译的.

mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
Run Code Online (Sandbox Code Playgroud)

我在eclipse编译器中得到的错误如下:

ObjectMapper类型中的方法configure(SerializationConfig.Feature,boolean)不适用于参数(SerializationFeature,boolean)

这里发生了什么?我错过了一些明显的东西吗 它不能像文档中所示那样工作.先感谢您.

Kat*_*ona 6

似乎Jackson你的classpath 1.x和2.x中有两个版本,你正在混合这两个版本.你ObjectMapper似乎来自1.x而你试图SerializationFeature从2.x版本传递一个.

所以你要么必须使用com.fasterxml.jackson.databind.ObjectMapper(2.x),要么必须传递SerializationConfig.Feature给方法configure.

请参阅更改.