我修改了以下代码的解决方案,但仍然遇到问题。谁能为我提供我所缺少的建议?非常感谢您的帮助。
过去几天,我一直在这里搜索,并尝试了不同的解决方案,但都没有一个适合我,因此我决定自己注册并提出问题。
这是怎么回事: 我的项目中的json属性可以基于api版本具有两种数据类型。它可以是一个字符串或一对键值对。 我如何允许我的@JsonProperty(“ field_with_two_possible_types”)具有两种可能的类型并正确解析它们?
这是我的主数据类的样子:
@PaperParcel
data class DataClass(
@JsonProperty(“field_with_two_possible_types”)
val symptomTime: FieldPOJO? = null,) : PaperParcelable {
companion object {
@JvmField
val CREATOR = PaperParcelDataClass.CREATOR
}
}
POJO Class
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type.id")
@JsonSubTypes(
JsonSubTypes.Type(name = “string_value”, value = String::class),
JsonSubTypes.Type(name = “object_value”, value = FieldSubPOJO::class))
class FieldPOJO() : Parcelable {
var value1: String? = null
var value2: FieldSubPOJO? = null
constructor(parcel: Parcel) : this() {
value1 = parcel.readString()
value2 = parcel.readParcelable(FieldSubPOJO::class.java.classLoader)
}
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(value1)
parcel.writeParcelable(va;ie2, flags)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<FieldPOJO> {
override fun createFromParcel(parcel: Parcel): FieldPOJO {
return FieldPOJO(parcel)
}
override fun newArray(size: Int): Array<FieldPOJO?> {
return arrayOfNulls(size)
}
}
}