我如何从 kotlin 中的 arraylist 键和值创建数组?

问题描述

我的响应在数组列表下面给出,现在我想通过 ** job_date** 键创建新的数组列表

"request": [
  {
    "id": 3,"company_id": 40,"job_id": 23,"job_date": "2021-07-22","first_name": "Larry","last_name": "P"
  },{
    "id": 8,"company_id": 44,"job_id": 27,{
    "id": 16,"company_id": 4,"job_id": 2,"job_date": "2021-07-01","last_name": "P"
  }
]

我想要如下输出,数组中的相同日期数据

{
"2021-07-2": [
  {
    "id": 3,"last_name": "P"
  }
],{
"2021-07-1": [
  {
    "id": 16,"last_name": "P"
  }
]

如果有人对 ArrayList 的这种类型的过滤器有任何想法,请评论您的答案。 提前致谢

解决方法

我简化了数据模型,但 groupBy 会起作用。

data class DatedRequest(val id: Int,val jobDate: String)
data class Request(val id: Int)

fun main() {
    val list = listOf(
        DatedRequest(1,"2021"),DatedRequest(2,DatedRequest(3,"2020")
    )

    list.groupBy({ it.jobDate },{ Request(it.id) })
        .also(::print)
}

打印结果

{2021=[Request(id=1),Request(id=2)],2020=[Request(id=3)]}
,

你可以试试这个代码。 首先,将 JSON 响应转换为 jsonString(我们称之为响应)。

RESOURCE_ID

确保您已验证您的 json

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...