GSON 带编号序列化

问题描述 投票:0回答:1

我在使用 Gson 进行 json 序列化时遇到了问题。

返回结果如下:

{"STATUS":200,
"ORG_NAME":"FF Superflott",
"VORNAME":"Christian",
"NACHNAME":"Tschimmi",
"PERSONEN":[{"personenID":2,
  "dienstgrad":"General",
  "vorname":"Max",
  "nachname":"Mustermann",
  "handynummer":"0680\/216 34 21"},
  {"personenID":2732,
  "dienstgrad":"",
  "vorname":"Vorname35",
  "nachname":"Name 1",
  "handynummer":"0664 4677567"}],
"GRUPPEN":{"1":"Feuer",
  "2":"SA1",
  "3":"SA2",
 ...
  "28":"",
  "29":"",
  "30":""}}

我的模型看起来像这样:

data class TestModel (
    @SerializedName("STATUS") val STATUS: Int,
    @SerializedName("ORG_NAME")  val ORG_NAME : String,
    @SerializedName("VORNAME")  val VORNAME : String,
    @SerializedName("NACHNAME")  val NACHNAME : String,
    @SerializedName("PERSONEN")  val PERSONEN : ArrayList<PERSONEN> = arrayListOf(),
    @SerializedName("GRUPPEN")  val GRUPPEN : ArrayList<GRUPPEN> = arrayListOf(),
 
)

data class PERSONEN (
    @SerializedName("personenID"  ) var personenID  : Int?    = null,
    @SerializedName("dienstgrad"  ) var dienstgrad  : String? = null,
    @SerializedName("vorname"     ) var vorname     : String? = null,
    @SerializedName("nachname"    ) var nachname    : String? = null,
    @SerializedName("handynummer" ) var handynummer : String? = null
)

data class GRUPPEN (
    @SerializedName("1"  ) var 1 : String? = null,
    @SerializedName("2"  ) var 2  : String? = null,
   ...
    @SerializedName("29" ) var 29 : String? = null,
    @SerializedName("30" ) var 30 : String? = null


)

我收到有关冲突声明的错误。 问题的关键应该在“GRUPPEN”部分。 这个键是 String 但被识别为 Int。

错误消息:

Conflicting declarations: public final var 
: String?, public final var 
: String?

有人知道如何解决这个问题吗?

android kotlin gson
1个回答
0
投票

变量不能以数字开头。您需要为其指定一个除“1”之外的名称。

© www.soinside.com 2019 - 2024. All rights reserved.