【发布时间】:2012-08-07 18:35:05
【问题描述】:
我想确保 Jackson 生成的 JSON 文件永远不会被打印出来。我是一个正在从事现有项目的初级人员,因此我需要向后工作以找出可以将 JSON 配置为输出为漂亮打印的所有方式。我可以确认项目中有 0 个对 .defaultPrettyPrintingWriter() 的引用,以及对 .setSerializationConfig 的 0 个引用,我相信它们也可以用来启用漂亮的打印。
那么这怎么可能呢?或者,是否有一种可靠的方法来确保 JSON 文件不是打印出来的?
【问题讨论】:
-
您是否使用任何 bean 或应用程序服务器?您可能需要检查配置文件中的
prettyPrint属性。 -
更新:我在我正在处理的项目中发现了几个 ObjectMapper 实例。如果我写了类似 OutputMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, false);然后我会得到我正在寻找的非漂亮打印 JSON,对吧?
-
"OutputMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, false); 然后我会得到我正在寻找的非漂亮打印 JSON,对吧?"*从理论上讲,是的,这应该使 ObjectMapper 的那个实例打印得不好。不过,仍然可以通过其他方式创建 ObjectMappers。
-
编辑:详细地说,我在项目中搜索了所有新的 ObjectMapper 对象,但我想是否有一种方法可以创建 ObjectMapper 而不是简单的“私有静态最终 ObjectMapper objectMapper;”那么可能还有未受影响的 ObjectMapper 对象。
-
就像它是通过工厂创建并透明地使用一样。类似于:
getMapperFactory().getMapper().getJsonFactory().createJsonGenerator(message);你不能用 grep 表示,因为ObjectMapper没有明确的实例变量。但我不知道这段代码是什么样子的,所以这可能没有实际意义