如何 Post 一个包含数组的模型进入改造 Body Post?

How To Post a Model Containing Array into The Retrofit Body Post?

请帮我制作这种Body参数的改装界面:

{
    "filter": {
            "category_id": [1, 2],
            "state": ["kuala lumpur", "selangor"]
    },
    "sort": {
        "type": "state",
        "value": "ASC"
    }
}

所以目前这是我的改装界面

@FormUrlEncoded
@POST("universities-filter-sort")
suspend fun getUniversitiesFilterSort(
    @Field("filter") filter: Filters.Filter,
    @Field("sort") sort: Filters.Sort
): Call<University>

这是我的 body 模型 class 至于参数

data class Filters(
        @SerializedName("filter")
        val filter: Filter,
        @SerializedName("sort")
        val sort: Sort
    ) {
        data class Filter(
            @SerializedName("category_id")
            val categoryId: List<Int>,
            @SerializedName("state")
            val state: List<String>
        )
    
        data class Sort(
            @SerializedName("type")
            val type: String,
            @SerializedName("value")
            val value: String
        )
    }

通常 POST 方法的主体由改造中的 @Body 注释定义。尝试像下面这样使用 @Body 并在调用 getUniversitiesFilterSort 函数时,将 Filters class 的实例作为参数传递。

interface UniversitiesApi {

    @POST("universities-filter-sort")
    suspend fun getUniversitiesFilterSort(
        @Body args: Filters
    ): Call<University>
}