如何为Kotlin Retrofit2反序列化转换器配置ignoreUnknownKeys
配置Retrofit2忽略JSON未知键(Kotlin)
默认行为说明
你当前使用的是kotlinx.serialization的Json.asConverterFactory,它的默认行为是不忽略未知JSON键——如果返回的JSON里存在数据类未定义的字段,解析时会抛出SerializationException异常。
配置方法
要启用忽略未知键的功能,你需要先创建一个配置好的Json实例,再将其传入Retrofit的转换器工厂:
- 定义带忽略配置的Json实例:
val json = Json { ignoreUnknownKeys = true // 可选:可添加其他序列化配置,比如 coerceInputValues = true(自动处理空值或类型不匹配) }
- 修改Retrofit构建代码,使用这个自定义的Json实例:
private val retrofit = Retrofit.Builder() .addConverterFactory(json.asConverterFactory("application/json".toMediaType())) .baseUrl(baseUrl) .build()
验证说明
配置完成后,只要你的数据类标注了@Serializable注解,Retrofit在解析JSON时就会自动跳过所有未在数据类中定义的字段,只解析你声明的部分。
内容的提问来源于stack exchange,提问作者BobDoolittle
相关产品推荐
相关产品推荐

