Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅使用修改的字段序列化POJO?_Java_Serialization_Pojo - Fatal编程技术网

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

Java 仅使用修改的字段序列化POJO?,java,serialization,pojo,Java,Serialization,Pojo,我有一堆POJO要序列化/反序列化为JSON 然而,我只是选择性地阅读了卡桑德拉的一些字段 因此,当我将对象序列化为JSON时,我只需要从数据库读取的对象 因此,所有的setter都需要编写代码来跟踪该成员是否已被变异/定义 这样,当我去序列化时,只包括修改过的字段 我在这个模式中有几十个字段,所以我不想直接编写setter 有没有任何POJO框架可以为我做到这一点 Java中没有“未定义”,因此默认值为“null”。不幸的是…null在这种情况下是您的朋友 如果我理解正确,并且“未修改”字段在

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

然而,我只是选择性地阅读了卡桑德拉的一些字段

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

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

这样,当我去序列化时,只包括修改过的字段

我在这个模式中有几十个字段,所以我不想直接编写setter

有没有任何POJO框架可以为我做到这一点


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

null
在这种情况下是您的朋友

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

 @JsonInclude(Include.NON_NULL) //alternatively @JsonInclude(Include.NON_EMPTY)  
 class Foo {
这将从序列化对象中排除任何null(或者空)值

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


(注:如果您查看该链接,您将看到Jackson还有许多其他方便的注释)

非常好的反馈。我自己也想出了同样的解决方案,所以我想伟大的人都有相同的想法!我的更改是使用整数而不是整数。。这样,当我调用getValue()之类的函数时,我的代码会失败,因为没有发送值。我不喜欢必须抛出一个NPE,但这将是目前的工作。@burtonator嗯,我想他们会的:)当我在这里发布问题时,这种情况经常发生在我身上。既然你是新来的:如果我的回答解决了你的问题,请接受它。我注意到你以前从来没有这样做过,你应该这样做——它让未来的用户知道这个解决方案是有效的,并且它给了你一些声誉积分!谢谢完成。“接受”用户界面不是非常清晰。我可能会回到我以前的帖子。