【发布时间】:2019-08-06 07:06:18
【问题描述】:
假设我们有这个类:
class Test(@SerializedName("Nullablefield")
val nullable: Int?,
@SerializedName("NonNullableField")
val nonNullable: Int)
我们收到这个 json:
{
"Nullablefield": 3
}
如您所见,json 中缺少 NonNullableField,
当使用 Gson().fromJson 方法时,属性变为空(即使该属性被定义为非空)
我在执行此操作时阅读了有关 gson 使用不安全方法的信息。
在这种情况下,有没有办法让反序列化过程失败,使用 Gson 或任何其他库?
我不想通过为字段分配默认值来解决它。
【问题讨论】:
-
尝试设置默认值
-
@AlexandrKolesnik 我不想要默认值。我只是希望它失败。
-
我的建议是尝试另一个反序列化库,例如实际上是在考虑 Kotlin 支持的情况下编写的(Moshi,Jackson)。编辑:我实际上使用杰克逊,我认为你要求的行为是默认的。无论如何,我会给 moshi 一个机会,它很新,我认为它是用 Kotlin 编写的(或者至少有广泛的 Kotlin 支持),但对你想要的行为一无所知。