我正在使用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>
)
那么,现在检查电话机内部有多少个元素,并将它们逐个添加到列表中。