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

标签 java serialization pojo

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

但是,我有选择地仅读取 cassandra 中的一些字段。

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

因此,所有 setter 都需要编写代码来跟踪成员已被突变/定义。

这样,当我进行序列化时,只包含修改过的字段。

我在此架构中有数十个字段,因此我不想直接编写 setter 。

是否有任何 POJO 框架可以为我执行此操作?

Java 中没有“未定义”,因此不幸的是默认值为“null”...

最佳答案

在这种情况下,

null 是你的 friend 。

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

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

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

如果我没有正确理解您的意思,并且“未修改”字段将不会为空或为空,那么这会有点棘手,但不会太多。请告诉我,我会更新一些提示。

(PS,如果您查看该链接,您会发现 Jackson 还有很多其他方便的注释)

关于java - 仅使用修改的字段序列化 POJO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24103232/

相关文章:

parsing - ANTLR 规则消耗固定数量的字符

java - Model、javabean、POJO的区别

java - 如何保存Pojo Gson中不存在的字段

java - 如何从另一个 View 通知android ListView?

java - 还有什么工具可以替代 Selenium?

java - 当 lhs 为 false 时,为什么条件(三元)运算符以逻辑 AND 计算

android - 使用 Retrofit 获取 Json 数组

java - java中如何检查mysql用户是否存在

ios - 使用restkit序列化/非序列化对象的干净方法?

jquery - 排除序列化时的某些输入