使用任何类型的HashMap时Kotlinx序列化@Body转换器错误

问题描述

我正在将Kotlinx SerializationRetrofit一起使用,并尝试通过BodyHashMap发送参数,如下所示

@POST("post")
suspend fun sendPost(@Body params : HasMap<String,@Contextual @RawValue Any>) : GenericResponse<Post>

但是它给出了此错误消息

Unable to create @Body converter for java.util.HashMap<java.lang.String,java.lang.Object> (parameter #1)

我也将SerializersModule添加到Retrofit,但这没有帮助

fun provideRetrofit(baseUrl : String,okHttpClient: OkHttpClient) : Retrofit {
    val contentType = "application/json".toMediaType()
    val json = Json {
        serializersModule = SerializersModule {
            contextual(String.serializer())
            contextual(Int.serializer())
            contextual(Double.serializer())
            contextual(Boolean.serializer())
        }
    }
    return Retrofit.Builder()
        .baseUrl(baseUrl)
        .client(okHttpClient)
        .addConverterFactory(json.asConverterFactory(contentType))
        .build()
}

有人可以帮忙吗?

Kotlinx Version 1.0.1

Kotlinx Converter Version 0.8.0

Kotlin Version 1.4.10

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)