api Retrofit GSON:数据类型一直在变化



我正在使用Retrofit与GSON为客户端应用程序,我有一些麻烦与我的一些客户端api,我需要解决这个问题。

假设我有一个API,它给我电话:

{
"telephones": [
{"phoneNumber": "1234567890"},
{"phoneNumber": "2123456789"}
]
}

但是我的客户决定如果我只给你一个电话:

{
"telephones": 
{"phoneNumber": "1234567890"}
}

当没有电话时:

{
"telephones": "No telephone Available"
}

我可以用Kotlin解决这个数据类型问题吗?在iOS中,我可以强制他们重新执行编码方法,并强制他们总是拥有一个数组。有可能在Kotlin中做类似的事情吗?

这是一个小示例,因为原始答案有600到1300行JSON数据。

这可能行得通。

我已经在我的应用程序的许多地方这样做了。首先,假设您在一个JSON文件中收到多个不同的电话号码,可能看起来像这样。

  • 安装一个插件调用JSON到Kotlin类
  • 完成后,使用JSON" Kotlin数据类文件创建一个新文件
  • 插件为我自动创建合适的文件。
  • 然后我使用主文件捕获数据,这对我来说几乎每次都有效。

是的,我的另一个答案是,如果你做的一切手动,而检索数据做一个数据类,如:这只是为了解释的目的。

//lets say your json looks something like this
"records": [
{
"id": "1",
"telephones": [
{"phoneNumber": "1234567890"},
{"phoneNumber": "2123456789"}
]
},
{
"id": "2",
"telephones": 
{"phoneNumber": "1234567890"}
},
{
"id": "3",
"telephones": "No telephone Available"
}
]

我的示例代码看起来像这样:

data class records(
//some id 
val id: Int,
var telephones: List<Long>
)

那么,现在检查电话机内部有多少个元素,并将它们逐个添加到列表中。

相关内容

最新更新