无法在 Kotlin 中使用 Moshi 解析 Map<String, Double> - 意外的原始双精度

Flo*_* We 5 android kotlin moshi

val moshi = Moshi.Builder().build()
val type = Types.newParameterizedType(Map::class.java, String::class.java, Double::class.java)
val adapter = moshi.adapter<Map<String, Double>>(type)

val result = adapter.fromJson(InitData.json)
Run Code Online (Sandbox Code Playgroud)

刚刚从 Gson 切换到 Moshi,我遇到了这个问题。我希望上面的代码可以正常工作,因为它似乎可以与Map<String, String>.

我收到了一个IllegalArgumentException: Unexpected original double。使用盒装类型

Float 也是一样。我知道这里发生了什么,但这对 Moshi 是不可能的吗?

这是使用 com.squareup.moshi:moshi-kotlin:1.8.0

Eri*_*ran 10

Types.newParameterizedType(Map::class.java, String::class.java, Double::class.javaObjectType)

javaOjectType返回原始类型的相应装箱类型。