为什么@SerializedName 在使用 Scala 时不序列化字段(没有注释也能正常工作)
Why is @SerializedName not serializing fields when using Scala (works fine without annotation)
我有以下代码
case class BaseObject(
...
dnsRecord: Array[DNSEntry],
@SerializedName("dnsRecord") dnsEntries: Array[DNSEntry]
)
当我 运行 序列化时,dnsRecord 工作正常,而 dnsEntries 为空...
更新
@fluffy 让我想起了 another question 之前看过所以我改成
case class BaseObject(
...
dnsRecord: Array[DNSEntry],
@(SerializedName@scala.annotation.meta.field)("dnsRecord") dnsEntries: Array[DNSEntry]
)
这引发了一个问题,因为它试图使用已被使用的 dnsRecord
字段。
答案看起来像这样...
case class BaseObject(
...
@(SerializedName@scala.annotation.meta.field)("dnsRecord") dnsEntries: Array[DNSEntry]
)
甚至更好
object GsonScala {
type SerializedName = com.google.gson.annotations.SerializedName @scala.annotation.meta.field
}
case class BaseObject(
...
@GsonScala.SerializedName("dnsRecord") dnsEntries: Array[DNSEntry]
)
我有以下代码
case class BaseObject(
...
dnsRecord: Array[DNSEntry],
@SerializedName("dnsRecord") dnsEntries: Array[DNSEntry]
)
当我 运行 序列化时,dnsRecord 工作正常,而 dnsEntries 为空...
更新
@fluffy 让我想起了 another question 之前看过所以我改成
case class BaseObject(
...
dnsRecord: Array[DNSEntry],
@(SerializedName@scala.annotation.meta.field)("dnsRecord") dnsEntries: Array[DNSEntry]
)
这引发了一个问题,因为它试图使用已被使用的 dnsRecord
字段。
答案看起来像这样...
case class BaseObject(
...
@(SerializedName@scala.annotation.meta.field)("dnsRecord") dnsEntries: Array[DNSEntry]
)
甚至更好
object GsonScala {
type SerializedName = com.google.gson.annotations.SerializedName @scala.annotation.meta.field
}
case class BaseObject(
...
@GsonScala.SerializedName("dnsRecord") dnsEntries: Array[DNSEntry]
)