【发布时间】:2020-11-18 21:55:27
【问题描述】:
在 api 中,我必须在 JSonObject 中发送 JSonArray。 JSonObject 是这样的:
{
"token" : "1",
"task_name" : "Name",
"task_desc" : "Description",
"task_start_date" : "2020/10/01",
"task_end_date" : "2020/10/02",
"task_award" : "15",
"child_ids" : [
{
"child_id" : "1"
},
{
"child_id" : "2"
}
]
}
当我使用 Postman 发送此请求时,它工作正常,并且以我想要的方式接收响应。但是在android应用程序中实现它时,我收到一条错误消息:
retrofit2.adapter.rxjava2.httpexception http 500 internal server error
所以很明显这不是服务器端错误,因为它在 Postman 中运行良好。
这是我用于 api 的接口:
interface CreateTaskRemote {
@FormUrlEncoded
@POST("parent_create_task")
fun createTask(
@Field("token") parentToken: String,
@Field("task_name") title: String,
@Field("task_desc") description: String,
@Field("task_start_date") startDate: String,
@Field("task_end_date") endDate: String,
@Field("task_award") award: String,
@Field("child_ids") childIds: List<ChildId> <-- here i'm sending array
): Single<BooleanResponse>
}
还有 ChildId 类:
data class ChildId(
@SerializedName("child_id") val id: Int
)
似乎在实现 JSON 数组时存在错误。但是我在互联网上搜索了很多,我找不到适合我情况的解决方案。
【问题讨论】:
-
您是否尝试过记录您发送的 json 字符串并检查其结构?
-
@jamesyoung 我喜欢记录它。但是我如何记录改造正在生成的 json?
标签: android json retrofit retrofit2