@Deprecated SerializationFeature.WRITE_EMPTY_JSON_ARRAYS的替代品

时间:2016-08-08 21:58:47

标签: java jackson deprecated

我很难找到修正SerializationFeature.WRITE_EMPTY_JSON_ARRAYS上弃用警告的正确方法。

Javadocs声明

  

2.8以来有更好的指定过滤机制;   特别是使用com.fasterxml.jackson.annotation.JsonFormat或   配置覆盖。

但我会认为

ObjectMapper.configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, false);

配置覆盖,尽管上面的行触发了弃用警告。

有哪些其他替代品不会使用另一个注释污染模型类?我想全局配置行为。

2 个答案:

答案 0 :(得分:10)

在班级,您可以使用@JsonInclude,如:

@JsonInclude( JsonInclude.Include.NON_EMPTY )
public class MyClass ...

此外,在映射器级别,您可以执行以下操作:

mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);

答案 1 :(得分:0)

Javadoc完全是错误的。

  1. "using com.fasterxml.jackson.annotation.JsonFormat":在很多情况下,注释显然不是更好的注释,最明显的是当您不能注释POJOS,因为您不拥有注释,或者当您需要覆盖注释以获得与您通常想要的行为不同的行为时。

  2. "configuration overrides":这很好,但是据我所知,没有其他优先于注释的替代。

从用户的角度来看,不推荐使用的选项的唯一不好的地方就是不推荐使用,因此将来可能不支持。这当然是一个真正的问题-您可能有一天可能必须在重要的安全更新和保持代码正常运行而无需重写的情况下进行选择。