Почему @SerializedName не сериализует поля при использовании Scala (отлично работает без аннотации) - PullRequest
0 голосов
/ 05 августа 2020

У меня есть следующий код

case class BaseObject(
    ...
    dnsRecord: Array[DNSEntry],
    @SerializedName("dnsRecord") dnsEntries: Array[DNSEntry]
)

Когда я запускаю сериализацию, dnsRecord отлично работает, тогда как dnsEntries имеет значение null ...

enter image description here

Update

@fluffy reminded me of другой вопрос Некоторое время назад я видел, поэтому я изменил все на

case class BaseObject(
    ...
    dnsRecord: Array[DNSEntry],
    @(SerializedName@scala.annotation.meta.field)("dnsRecord") dnsEntries: Array[DNSEntry]
)

. Это вызвало проблему, потому что он пытался использовать поле dnsRecord, которое уже использовалось.

1 Ответ

0 голосов
/ 05 августа 2020

Ответ выглядел так ...

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]
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...