如何从 objectmapper 获得具有漂亮打印和 json 视图的对象编写器?

How to get object writer with both pretty print and with a json view from objectmapper?

我需要创建 json 既有漂亮的印刷品又有 JsonView。 如何从 jackson objectmapper 做同样的事情? 当我尝试使用这两个属性时出现以下错误。

Error:The method writerWithDefaultPrettyPrinter() is undefined for the type ObjectWriter.

我的代码:

objectMapper.writerWithView(View.ConfigJson.class).writerWithDefaultPrettyPrinter().writeValue(file, value);

最简单的方法是在 ObjectMapper:

上启用 SerializationFeature.INDENT_OUTPUT
mapper.enable(SerializationFeature.INDENT_OUTPUT);

或使用withDefaultPrettyPrinter方法:

mapper
    .writerWithView(View.ConfigJson.class)
    .withDefaultPrettyPrinter()
    .writeValue(System.out, map);

您需要注意 writer* 方法是在 ObjectMapper 和 return ObjectWriter 实例中声明的。从那以后,您可以使用在 ObjectWriter.

中声明的 with* 方法