如何解决如何使用kotlinx.serialization部分解码JSON字符串?
我有一个看起来像{"code": "FOO"}
的JSON字符串。
现在,我想使用kotlinx.serialization
反序列化此字符串。我尝试了以下方法:
import kotlinx.serialization.*
@Serializable
data class Result(val code: String?)
val decoded = Json.decodeFromString<Result>(jsonString)
当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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。