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

时间:2019-04-12 07:49:06

标签: json jackson objectmapper

我需要同时创建漂亮的json和JsonView。 如何从杰克逊对象映射器做同样的事情? 当我尝试同时使用两个属性时,出现以下错误。

  

错误:未定义方法writerWithDefaultPrettyPrinter()   键入ObjectWriter。

我的代码:

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

1 个答案:

答案 0 :(得分:1)

最简单的方法是在ObjectMapper上启用SerializationFeature.INDENT_OUTPUT

mapper.enable(SerializationFeature.INDENT_OUTPUT);

或使用withDefaultPrettyPrinter方法:

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

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