【发布时间】:2019-10-22 22:03:18
【问题描述】:
我有一个这样的对象:
public class MyObject {
private String name;
private int number;
// ...
}
而且我只想在值不是负数 (number >= 0) 时才包含 number。
在研究过程中,我发现了 Jackson serialization: ignore empty values (or null) 和 Jackson serialization: Ignore uninitialised int。两者都使用带有Include.NON_NULL、Include.NON_EMPTY 或Include.NON_DEFAULT 的@JsonInclude 注释,但它们都不适合我的问题。
我可以以某种方式使用@JsonInclude 和我的条件number >= 0 来仅包含非负值的值吗?或者有其他解决方案可以实现吗?
【问题讨论】:
-
正如您通常将对象 jackson 转换为另一个对象(这是外部数据和将外部数据转换为您自己的数据结构以便在您的业务逻辑中不依赖它们的良好做法)我建议您在转换过程中实现概述的逻辑,因为杰克逊不应该用于实现特定于您的应用程序的逻辑,从而实现您的业务逻辑。您可能能够实现这一点,但随后您将特定于应用程序的逻辑耦合到您的 json 映射器。
标签: java json serialization jackson