如何在 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 应用程序的空值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 qt 4.8 中通过 dbus 接收 QList<QVariantMap>?

Java中通过反射获取带参数类型的方法

Struts2中通过Ajax传递json数据

安卓项目怎么导入gson

在 Linux 中通过 PHP 使用 SoX

Gson、FastJson、Jackson、json-lib对比总结