2

我有一个响应对象:

data class ResponseObject(
        val notCamelcase: String,
        val param2: String,
        val param3: String
)

请注意响应 JSON 正文中的第一个参数不是驼峰式(如notCamelCase)。

此外,我使用 FUEL 库触发 REST 调用:

Fuel.get(someParam)
        .responseObject(moshiDeserializerOf(ResponseObject::class.java)) { _, response, result ->
            try {
                if (response.statusCode == HttpURLConnection.HTTP_OK) {
                    val responseObject = result.component1()
        }

以下是我的进口:

import com.github.kittinunf.fuel.Fuel
import com.github.kittinunf.fuel.core.FuelError
import com.github.kittinunf.fuel.core.FuelManager
import com.github.kittinunf.fuel.core.HttpException
import com.github.kittinunf.fuel.moshi.moshiDeserializerOf

要在我的以下代码中使用驼峰式,我修改了 ResponseObject,如下所示:

data class ResponseObject(
        @Json(name="notCamelcase")
        val notCamelCase: String,
        val param2: String,
        val param3: String
)

正如这里所描述的......

在这种情况下,notCamelCase为空。@Json 是否仅与 com.github.kittinunf.fuel.moshi.moshiDeserializerOf 一起使用?怎么了?

4

1 回答 1

6

@field:Json()为 Moshi kotlin使用注释。

data class ResponseObject(
    @field:Json(name="notCamelcase")
    val notCamelCase: String,
    val param2: String,
    val param3: String
)

参考:https ://github.com/square/moshi/issues/315 正如讨论中提到的,这仍然是一种解决方法。官方的 Kotlin 支持是正确的方法:https ://github.com/square/moshi#kotlin

于 2019-05-09T14:13:08.520 回答