【发布时间】:2019-03-07 19:37:49
【问题描述】:
假设我有以下数据类:
data class MyDataClass(@SerializedName("myList") val myList: List<String>)
我尝试解析这个 JSON:
{ "myList": null } or {}
我想得到一个空列表,但我得到一个空的myList。有谁知道如何在不为每个包含列表的类型实现registerTypeAdapter 的情况下序列化它?
如果我将emptyList() 设置为构造函数的默认值。第二个 JSON 按我的意愿工作。
【问题讨论】:
-
理论上你使用的任何库/框架都可能使用反射,因此绕过构造函数,直接设置值。
-
是的,我知道这一点,但我会找到一种方法将空列表默认设置为空
-
没有
TypeAdapter,我想不出任何办法。也许是Gson.Builder.serializeNulls。无论如何,您都应该尝试使用TypeAdapter第一个 IMO。