API改造gson:数据类型一直在变化

wljmcqd8  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(290)

我正在为一个客户端的应用程序使用gson改造,我的一些客户端API遇到了一些问题,我需要解决这个问题。
假设我有一个api,它提供电话:

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

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

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

   }

当没有电话时:

{
      "telephones": "No telephone Available"
    }

我可以用kotlin解决这个数据类型问题吗?在ios中,我可以强制他们重新实现编码方法,并强制他们始终拥有一个数组,是否可以在kotlin中执行类似的操作?
这是一个小例子,因为原始答案有600到1300行json数据。

p5cysglq

p5cysglq1#

这可能有用。
我已经在我的应用程序的许多地方这样做了。因此,首先,假设您在一个json文件中收到多个不同的电话号码,可能看起来像这样。
为kotlin类安装一个插件调用json
完成后,使用“kotlin data class file from json”创建一个新文件
插件为我自动创建合适的文件。
然后我使用主文件来捕获数据,这几乎每次都适用于我。
是的,我的另一个答案是,如果您在手动执行所有操作,那么在检索数据时创建一个数据类,例如:这只是为了解释目的。

//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>
)

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

相关问题