我有一堆 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/