改装/ Spring解析数据类到JSON对象

时间:2019-03-18 11:17:15

标签: json spring kotlin gson retrofit

我具有以下数据类:

data class Thing(
    val id: Long?,
    val title: String,
    val description: String,
)

在我的Api中:

@POST("doThings")
    fun createThings(
        @Query("thing") thing: Thing
    ): Call<StatusResponse>

我得到了错误: 状态”:500,“错误”:“内部服务器错误”,“消息”:“意外字符('E'(代码69))

在spring api中,我做了一个日志输出,数据类对象的到达方式为:

“事物(id = null,标题=其他,描述=其他)”

Retrofit Builder具有GSON转换器,但我想它不能正常工作:

Retrofit.Builder()
            .client(get())
            .baseUrl(get<Context>().getString(R.string.base_url))
            .addCallAdapterFactory(get<CoroutineCallAdapterFactory>())
            .addConverterFactory(get<GsonConverterFactory>())
            .build()

有什么建议吗?谢谢

1 个答案:

答案 0 :(得分:0)

您正在使用@Query批注,这意味着您的Thing将被序列化为String并作为查询参数传递到URL中。

您改为使用@Body批注,该批注会将Thing对象序列化为JSON并将其添加到POST正文中。

此答案将为您提供有关如何使用该注释的更多详细信息:https://stackoverflow.com/a/21423093/5577048