如何在 kotlin 中通过 GSON lib 解析 JSON 时管理 android 应用程序的空值
Posted
技术标签:
【中文标题】如何在 kotlin 中通过 GSON lib 解析 JSON 时管理 android 应用程序的空值【英文标题】:How to manage null value for android application while JSON parsing via GSON lib in kotlin 【发布时间】:2020-06-24 04:21:02 【问题描述】:我正在开发 android 应用程序并希望管理来自 API 的 null 值。 我没有找到最佳解决方案。
我也试试这些方法
1.在模型类中生成 getter 时,我在 getter 中给出一个条件语句,例如
if(value == null)
value = ""
但这不是正确的方法,因为我必须为整个应用程序中的每个 getter 编写此代码。
2。在 JSON 解析之前将字符串从 'null' 替换为 ""。
这是将所有类型的值(int/float 等)替换为无效的空白字符串。
【问题讨论】:
你想像上面那样用“”替换空值吗?或者您只是想创建一个模型类来灵活处理空值和数据? @Black4Guy 我不想在我的模型类变量中分配空值 根据你的2点。是的,您不能将双引号“”添加到 int 和 float,在这种情况下,您可以将 int 分配为 0 并将 float 作为 0f 默认值。 如果您不想在模型中分配空值,那么在某些时候您必须像在模型中或在 JSON 到模型反序列化期间那样检查空值。 【参考方案1】:您可以使用JsonDeserializer
创建您的Gson
。
【讨论】:
【参考方案2】:你可以像这样创建模型类
class ExampleModel
@SerializedName("id")
@Expose
val id: Int? = null
@SerializedName("category")
@Expose
val category: String? = null
这个类也可以处理空值和数据。
【讨论】:
以上是关于如何在 kotlin 中通过 GSON lib 解析 JSON 时管理 android 应用程序的空值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Kotlin 中将 TypeToken + 泛型与 Gson 一起使用
如何通过 Kotlin 中的 gson 访问嵌套 JSON 中的值?