一个 @SerializedName 允许多种数据类型

One @SerializedName allowing for multiple datatypes

我正在将对象上传到服务器,"value" 字段接受字符串、整数和布尔值。

这是 @SeralizedName 应用明显失败的模型。

public class InspectionFormItems {

@SerializedName("id")
private Integer id;

@SerializedName("type")
private String type;

@SerializedName("value")
private String stringValue;

@SerializedName("value")
private boolean boolValue;

@SerializedName("value")
private int intValue;

@SerializedName("name")
private String name;

@SerializedName("children")
ArrayList<ArrayList<InspectionFormItems>> subitems;
}

我发现的大多数 Whosebug 结果都是针对序列化整个对象或反序列化的。我的一些想法是..

这个对象是一个更大对象的一部分,subitems 对象有相当的深度,就像一个音符一样。我希望这是某个问题的重复,到目前为止我一直找不到它。

编辑:

这是我发现的最接近的问题,尽管我不想像这个人那样自定义序列化整个对象,因为在这个传出的 json 中可能有 40-100 个这样的对象

我还发现我无法动态设置@SerializedValue 属性 is-it-possible-to-pass-method-parameter-to-annotation-on-a-method?

第 3 次编辑:让我知道是否应该删除一堆多余的内容。我正在尝试实施此方法 - inner serialization - 这个答案虽然很旧但现在很难实现。

感谢 Andreas 的回答。

使用 Object,我能够避免预定义变量。

@SerializedName("value")
private Object value;

这让我可以同时传递 StringIntegerboolean值字段。