如何在 Retrofit 中生成这样的 [{"key":"available","value":"1"}] Request Body?

How to generate Request Body like this [{"key":"available","value":"1"}] in Retrofit?

我的服务器正在接受这样的请求正文:

[
 {
  "key":"available",
  "value":"1"
 }
]

我有这样的界面:

@POST("lm/leave")
suspend fun requestLeave(
    @Body body: RequestBody
): Response<LeaveResponse>

我尝试过的:

val lReq: HashMap<String, String> = HashMap()
    lReq.put("available", "1")

我应该如何以及使用什么来生成上述请求?任何帮助将不胜感激!

您可以使用JSONObject and JSONArray创建您需要的请求:

val jsonObj = JSONObject()
jsonObj.put("available", "1")

val jsonArray = JSONArray()
jsonArray.put(jsonObj)

val requestBody = RequestBody.create(null, jsonArray.toString())
requestLeave(requestBody)

JSONObject 负责创建 json 格式的对象数据表示:

 {
  "key":"available",
  "value":"1"
 }

JSONArray将对象包装成数组表示:

[
    {
     "key":"available",
     "value":"1"
    }
]