首页 > 解决方案 > 验证 POJO 数据类是否正确映射

问题描述

我正在使用带有 GSON 的 POJO 数据类来解析从 Firestore 数据库调用的数据。

例如,我有一个 POJO 类,其中包含一些不可为空和可以为空的值,例如 userID

data class Users(id:String="", userID:String="" ...)

然后我使用 GSON 将 JSON 数据解析为该类的对象

 val gson = Gson()
 val jsonObjects = gson.toJson(querySnapshot.data)
 val parseData = gson.fromJson(jsonObjects,Users::class.java)

我的问题是,如果有人在数据库中上传数据并忘记添加用户 ID(即它为空),有没有办法可以在解析时检查用户数据类是否有效?

我正在使用类似 if(userID == ""){return false} 的检查。但随着不可空字段数量的增加,它变得乏味,必须有更好的方法来检查这一点。

标签: androidfirebasekotlingoogle-cloud-platformgoogle-cloud-firestore

解决方案


我的问题是,如果有人在数据库中上传数据并忘记添加用户 ID(即它为空),有没有办法在解析时检查用户数据类是否有效?

如果您根本不想有空值,为什么还要让用户提供不完整数据的可能性?最简单的解决方案是限制添加到数据库的数据。如何?只需创建一些约束即可。例如,如果您的用户未填写所有必填字段,他们将无法访问您应用中的某个功能。这是一种被广泛使用的操作。

如果您已经有空值,那么检查空值是您可以继续使用的解决方案。在 Kotlin中,可以通过多种方式处理null 安全性,通过在条件中检查 null、使用安全调用elvis 运算符甚至使用!! 运营商


推荐阅读