Klaxon 解析 null

Posted

技术标签:

【中文标题】Klaxon 解析 null【英文标题】:Klaxon parse null 【发布时间】:2021-08-18 10:15:54 【问题描述】:

我在使用Klaxon 5.5时遇到问题

类:

data class QRResponse(
   @field:SerializedName("qrType")
   val qrType: String? = null,

   @field:SerializedName("qrData")
   val qrData: String? = null
)

代码:

val dataContents = result.contents
Log.d("ScanQRData", "result.contents : $dataContents")

val dataQR = Klaxon().parse<QRResponse>(dataContents)
Log.d("ScanQRData", "dataQR : $dataQR")

结果:

ScanQRData: result.contents : "qrType": "product", "qrData":"352307811"

ScanQRData: dataQR : QRResponse(qrType=null, qrData=null)

Klaxon 解析后qrTypeqrData null 发生了什么建议?

【问题讨论】:

【参考方案1】:

Klaxon 不处理 @field:SerializedName 注释(您从哪里导入它?)。在 Klaxon 中自定义 JSON 文档和 Kotlin 对象之间映射的正确方法是 @Json annotation:

data class QRResponse(
    @Json(name = "qrType")
    val qrType: String? = null,

    @Json(name = "qrData")
    val qrData: String? = null
)

【讨论】:

以上是关于Klaxon 解析 null的主要内容,如果未能解决你的问题,请参考以下文章

Android Kotlin + Klaxon - 解析 JSON 根数组

Kotlin klaxon 解析谷歌方向 Api

如何使用 Klaxon 解析嵌套 JSON 并在 recyclerview 中显示?

如何在 android studio 上使用 klaxon 从 thingspeak 解析 json 以获取字段值?

如果 JSON 中存在值,则中断,但如果值为 null,则返回(kotlin)

nslookup 报告“无法解析 '(null)':名称无法解析”,尽管它成功解析了 DNS 名称