2

我正在尝试将我创建的名为 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);         

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

mapper.configure(SerializationFeature.INDENT_OUTPUT, true);

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

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

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

4

2 回答 2

6

您的类路径 1.x 和 2.x 上似乎有两个版本,Jackson而您正在混合使用这两个版本。您ObjectMapper似乎来自 1.x 并且您正试图SerializationFeature从 2.x 版本传递 a 。

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

有关更改,请参阅此内容。

于 2013-08-26T19:30:58.557 回答
0

您可能同时拥有 Object Mappercom.fasterxml.jackson.databind.ObjectMapperorg.codehaus.jackson.map.ObjectMapper

//com.fasterxml.jackson.databind.ObjectMapper can be used like this,
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.DeserializationFeature;
ObjectMapper mapper = new ObjectMapper()
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

//org.codehaus.jackson.map.ObjectMappe can be used like this,
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
ObjectMapper mapper = new ObjectMapper()
mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);

希望这会有所帮助。

于 2020-12-10T04:48:36.550 回答