首页 > 解决方案 > 如何从 objectmapper 获取具有漂亮打印和 json 视图的对象编写器?

问题描述

我需要创建带有漂亮打印和使用 JsonView 的 json。如何从杰克逊 objectmapper 做同样的事情?当我尝试使用这两个属性时出现以下错误。

错误:没有为 ObjectWriter 类型定义 writerWithDefaultPrettyPrinter() 方法。

我的代码:

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

标签: jsonjacksonobjectmapper

解决方案


最简单的方法是启用SerializationFeature.INDENT_OUTPUTObjectMapper

mapper.enable(SerializationFeature.INDENT_OUTPUT);

或使用withDefaultPrettyPrinter方法:

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

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


推荐阅读