gpt4 book ai didi

kotlin - Kotlin-当在json中不存在非null属性时,强制从json反序列化失败到类吗?

转载 作者:行者123 更新时间:2023-12-02 13:20:31 50 4
gpt4 key购买 nike

假设我们有这个类(class):

  class Test(@SerializedName("Nullablefield")
val nullable: Int?,
@SerializedName("NonNullableField")
val nonNullable: Int)

然后我们获取这个json:
{
"Nullablefield": 3
}

如您所见,json中缺少NonNullableField,

使用Gson()。fromJson方法时,该属性将变为null(即使该属性定义为非null)

在执行此操作时,我了解了使用不安全方法的gson。

在这种情况下,是否可以使用Gson或任何其他库来使反序列化过程失败?

我不想通过为该字段分配默认值来解决它。

最佳答案

您可以使用Moshi库解析json

import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import com.squareup.moshi.Moshi

fun main() {
val json = """
{
"Nullablefield": 3
}
""".trimIndent()
val moshi = Moshi.Builder().build()
val adapter = moshi.adapter(Test::class.java)
val test = adapter.fromJson(json)//will crash
println(test)
}

@JsonClass(generateAdapter = true)
data class Test(
@Json(name = "Nullablefield")
val nullable: Int?,
@Json(name = "NonNullableField")
val nonNullable: Int
)

关于kotlin - Kotlin-当在json中不存在非null属性时,强制从json反序列化失败到类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57370650/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com