在 Kotlin Android 中检索多维数组 JSON

Retrieve MultiDimensional Array JSON in Kotlin Android

我想得到这种响应(如果用户搜索特定关键字):

VendListRequest(row=50, page=1, query=[["vendorName", contain, "erlangga"],["status","true"]])

但是我得不到那种回应。 我有这样的数据 class:

data class VendListRequest (
        val row : Int,
        val page : Int,
        val query : List<List<String>>
)

它只能检索这样的响应:

(row=50, page=1, query=[["vendorName", contain, "erlangga"])

我想要的情况是这样的:

  1. 当用户未在搜索框中输入任何关键字时,将出现列表,调试查询响应将如下所示:

    VendListRequest(row=50, page=1, query=[["status", "true"]])

  2. 当用户在搜索框中键入任何关键字时,将出现列表并且调试查询响应将如下所示:

    VendListRequest(row=50, page=1, query=[["vendorName", contain, "erlangga"],["status", "true"]])

这是我在 kotlin class 中检索数据的代码:

 override fun getVendorList(row: Int, page: Int, vendorName: String?, query: String?, status: String?, isLoadMore: Boolean): Observable<SearchListResponse<VendorItem>> {
            var searchList: List<List<String>> = emptyList()
            if (!vendorName.isNullOrEmpty() && !query.isNullOrEmpty()) {
                searchList = listOf(status, EQUALS, true)
            }
    //___________________________________________________________________
    }

我终于找到了答案。 这就是我所做的:

  1. 我在我的存储库中添加了一个新参数

之前:

fun getVendorList(row: Int, page: Int, vendorName: String?, query: String?, isLoadMore: Boolean) : Observable<Response<VendorItem>>

之后:

fun getVendorList(row: Int, page: Int, vendorName: String?, query: String?, status: String, isLoadMore: Boolean) : Observable<Response<VendorItem>>
  1. 创建一个新的List变量“statusList”并将其添加到模型中class,之后我们只需要调用REST API.

val vendListReq= VendListReq(row, page, searchList + statusList)

然后在 :

中调用它

.concatMap { remRegData.getVendList(it, vendListReq) }