仅使用已修改的字段序列化POJO?

时间:2014-06-08 05:17:10

标签: java serialization pojo

我有一堆POJO我想序列化/反序列化为JSON。

但是,我有选择地只从cassandra中读取某些字段。

因此,当我将对象序列化为JSON时,我只想要那些从数据库中读取的对象。

因此,所有setter都需要编码来跟踪成员是否已被变异/定义。

当我去序列化时,只包括修改后的字段。

我在这个架构中有很多字段,所以我不想直接编写setter。

是否有任何POJO框架可以帮我这么做?

没有' undefined'在Java中,默认为' null'不幸的是...

1 个答案:

答案 0 :(得分:1)

在这种情况下,

null是你的朋友。

如果我正确地理解你并且未经修改的"字段在序列化时将为null,并假设您使用Jackson,只需将以下注释添加到类的顶部:

 @JsonInclude(Include.NON_NULL) //alternatively @JsonInclude(Include.NON_EMPTY)  
 class Foo {

这将排除序列化对象中的任何null(或者,空)值。

如果我没有正确理解你并且未经修改,那么#34;字段将为空或空,它会有点棘手,但并不多。请告诉我,我会更新一些提示。

(PS,如果你查看该链接,你会看到Jackson有很多其他方便的注释)