Dun*_*Luk 2 serialization json kotlin kotlinx.serialization
我有一个 JSON 字符串,看起来像{"code": "FOO"}
.
现在我想使用kotlinx.serialization
. 我尝试了以下方法:
import kotlinx.serialization.*
@Serializable
data class Result(val code: String?)
val decoded = Json.decodeFromString<Result>(jsonString)
Run Code Online (Sandbox Code Playgroud)
这在 JSON 仅包含 时有效code
,但实际上 JSON 字符串中可以有其他键(这是我无法控制的)。我只关心code
密钥,但是当存在其他密钥时,我的应用程序崩溃了。
我如何只解码相关的 JSON 密钥?
在进一步调试我的应用程序后,我发现以下错误:
JsonDecodingException:偏移 14 处出现意外的 JSON 标记:遇到未知键“错误”。在“Json {}”构建器中使用“ignoreUnknownKeys = true”来忽略未知键。JSON 输入:{"code":"FOO","otherKey":"别的东西"}
我找不到任何关于此的文档,但我设法通过将代码更改为以下内容来解决此问题:
import kotlinx.serialization.*
@Serializable
data class Result(val code: String?)
val decoded = Json { ignoreUnknownKeys = true }.decodeFromString<ErrorResponse>(jsonString)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1396 次 |
最近记录: |