将我想要发送到API的以下JSON:
{
"param1": "1",
"param2": "2",
"param3": {
"param3-1": "3-1",
"param3-2": "3-2"
}
}我的param3对象是:
data class param3Object(
@SerializedName("param3-1") param3_1: String,
@SerializedName("param3-2") param3_2: String
)是否可以将上述对象传入API request @Field属性:
@FormUrlEncoded
@POST("api/something")
fun doSomething(
@Field("param1") param1: String,
@Field("param2") param2: String,
@Field("param3") param3: param3Object
): Call<MyResponse>所以它在这篇文章的顶部代表了JSON?或者我需要以@Field的形式单独传递参数?我正在努力想办法不要浪费时间。
发布于 2020-09-24 21:16:58
您应该将其用作REQUEST BODY
@POST("api/something")
fun createUser(@Body data: Data) : Call<MyResponse>并定义模型
data class Data(
@SerializedName("param1") val param1: String,
@SerializedName("param2") val param2: String,
@SerializedName("param3") val param3: SubData
)
data class SubData(
@SerializedName("param3-1") val param3_1: String,
@SerializedName("param3-2") val param3_2: String
)编辑
如果您确实希望将其作为formUrlEncoded发送,那么可能更简单解决方案是将parameter3更改为字符串,并在将数据放入方法之前序列化数据,或者更好的做法是将所有内容都更改为单个参数并序列化整个对象
https://stackoverflow.com/questions/64047098
复制相似问题