我们最近从 Jackson json 2.8.2 迁移到 2.9.4,我们看到行为发生了重大变化。我们使用的是 JDK 1.8。
早些时候,我们在对象映射器级别将序列化包含设置为 NON_DEFAULT,并且一切正常。
现在更改为 2.9.2 后,NON_DEFAULT 会忽略所有默认值,例如布尔值 false、整数 0、...。这破坏了我们的测试用例。
我们的要求是只忽略空字段和返回为 [] 的空白字段。
但是我们仍然不想忽略空字符串,例如 test = ""
我们尝试了 non_empty、non_absent 都忽略了每个字段(null、[]、“”)。
您能否建议我们如何自定义序列化行为以满足我们的要求?如果您需要更多详细信息,请告诉我。