android - Moshi:平台类 BigDecimal 的问题

标签 android json moshi

我有一个类:

@JsonClass(generateAdapter = true)
data class DayAveragePriceModel(
    val asset: Asset,
    val value: BigDecimal
)

在哪里 Asset是我的自定义类(class)。我正在尝试使用 Moshi但我收到以下错误:
Caused by: java.lang.IllegalArgumentException: Platform class java.math.BigDecimal (with no annotations) requires explicit JsonAdapter to be registered
我该如何解决这个问题?我试过了
        return Moshi.Builder()
            .add(KotlinJsonAdapterFactory())
            .add(Object::class.java)
            .build()
    }

但它正在崩溃。

提前非常感谢!

最佳答案

正如异常(exception)所说,这是一种平台类型,您需要使用其公共(public) API 对其进行编码和解码。

object BigDecimalAdapter {
  @FromJson fun fromJson(string: String) = BigDecimal(string)

  @ToJson fun toJson(value: BigDecimal) = value.toString()
}

return Moshi.Builder()
    .add(BigDecimalAdapter)
    .add(KotlinJsonAdapterFactory())
    .build()

关于android - Moshi:平台类 BigDecimal 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54957945/

相关文章:

Android 启动服务永远不会启动

android - 裁剪ImageViews的Canvas方法

moshi - 如何使用 Moshi 反序列化泛型类型?

java - 使用损坏的远程 API 解析 json

android - 使用 moshi 转换 HashMap

php - 如何从 ANDROID -> PHP -> MySQL 发送 jsonArray 中的多个数据?

android - LazyColumn 可以与 CoordinatorLayout 一起使用吗?

json - 在 Serde 中处理混合对象数组

json - id 解码 JSON 时找不到 key

java - 如何在java中解析json对象内部的json对象