java - 仅当未设置时才排除 SerializedName 字段

标签 java serialization gson

我有一个正在序列化以发出请求的对象。

private static final String JSON_REQUEST_ID = "requestId";
private static final String JSON_OBJECT_ID = "objectId";
private static final String JSON_GROUP_ID = "groupID";

@SerializedName(JSON_REQUEST_ID)
public String requestId;

@SerializedName(JSON_OBJECT_ID)
public String objectId;

@SerializedName(JSON_GROUP_ID)
public String groupId;

当我发送此数据进行处理时,objectIdgroupId 需要互斥。因此,如果我设置了 objectId,我必须从请求中删除 groupId,反之亦然。

是否有一种简单的方法来注释它,或者我应该为每个类创建一个不同的类?

最佳答案

使用不同的类会使其更加明显,因为不同的结果(不同的属性)意味着不同的 json 对象。

为了“简化”,您可以使用相同的 java 类并为此提供自定义序列化器。

关于java - 仅当未设置时才排除 SerializedName 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52952517/

相关文章:

android - 在 Android 上从任何容器(如 List)创建 GSON

JavaFX 应用程序不会因 swing 内容而关闭

java - 从字节数组获取像素值

java - 如何通过默认端点/指标覆盖普罗米修斯

java - 使用 GSON 从包含 JSON 映射的 JSON 对象创建 Java 对象

java - 防止Gson转义Unicode符号

java - Box2D 主体不渲染并崩溃

java - 如何在Java中使用snake yaml序列化具有自定义名称的字段

c++ - C++中的命令模式序列化

Java 自定义序列化