当前位置: 首页 > 知识库问答 >
问题:

如何在ios Swift中解析/映射数组中的对象

梁和颂
2023-03-14
[
  {
    "department_id": "34",
    "department_name": "Anaesthesiology",
    "doctors_list": [
      {
        "doctor_id": "1",
        "hospital_id": "1",
       "dr_brief": "With "
      },
      {
        "doctor_id": "2",
        "hospital_id": "1",
      },
      {
        "doctor_id": "3",
        "hospital_id": "1",
       "dr_brief": "An MD in Anaesthesia "
      },
      {
        "doctor_id": "4",
        "hospital_id": "1",
        "dr_brief": "With MD"
      }
    ]
  },
  {
    "department_id": "38",
    "department_code": "CARD",
    "doctors_list": [
      {
        "doctor_id": "46",
        "hospital_id": "1",
       "dr_brief": "A DM in"
      },
      {
        "doctor_id": "47",
        "hospital_id": "1",
       "dr_brief": "A DM in  "
      },
      {
        "doctor_id": "48",
        "hospital_id": "1",
        "dr_brief": "With MS   "
      },
      {
        "doctor_id": "49",
        "hospital_id": "1",
        "dr_brief": "After completing his MBBS"
      },
      {
        "doctor_id": "50",
        "hospital_id": "1",
        "dr_brief": "With MBBS "
      },
      {
        "doctor_id": "51",
        "hospital_id": "1",
      },
      {
        "doctor_id": "52",
        "hospital_id": "1",
        "dr_brief": "An MD in Anaesthesiology "
      }
    ]
  }
]

共有1个答案

赏逸春
2023-03-14

对于映射对象:

 import Foundation

        // MARK: - department
        struct department: Codable {
            let departmentID, departmentName: String
            let doctorsList: [DoctorsList]
        
            enum CodingKeys: String, CodingKey {
                case departmentID = "department_id"
                case departmentName = "department_name"
                case doctorsList = "doctors_list"
            }
        }
        
        // MARK: - DoctorsList
        struct DoctorsList: Codable {
            let doctorID, hospitalID, drBrief: String?
        
            enum CodingKeys: String, CodingKey {
                case doctorID = "doctor_id"
                case hospitalID = "hospital_id"
                case drBrief = "dr_brief"
            }
        }
        
     typealias departments = [department]

对于json解码

let departments = try? newJSONDecoder().decode(departments.self, from: jsonData)

测试100%正常

 类似资料:
  • 我试图在大摇大摆地描述以下post参数: “任何人”=[“971”,50.0,70.0],“832”,50.0,30.0],“134A”,50.0,100.0]]

  • 问题内容: 我将Spring JPA与Hibernate和Postgres一起使用 在实体中,我尝试使用List和integer [] 在数据库中,我有一列类型: 有什么JPA使用方式吗? 问题答案: JPA无法直接将数组持久化到单独的表或数据库数组(例如,映射到的数组)。因此,您有两种方法: 1)用于将该列另存为BLOB或CLOB 2)使用而不是数组

  • 问题内容: 我正在使用一个API,该API返回如下所示的JSON 在Swift中,我使用两个函数来获取并解析JSON 然后我用 可以很好地解析JSON。当我打印出 我得到了数组的所有内容。但是,我无法访问每个单独的索引。我很肯定这是一个数组,因为我之间 返回正确的长度。但是,如果我尝试通过使用访问单个索引 XCode关闭语法高亮显示并给我以下信息: 并且代码将无法编译。 这是XCode 6的错误,

  • 流上的操作是否可以生成一个映射,其中值是数组而不是列表或其他集合类型? 例如:我有一个类。事物有所有者,所以有一个方法。在一个事物流中,我想按所有者ID对事物进行分组,以便具有相同所有者ID的事物最终在一个数组中。换句话说,我想要一个像下面这样的映射,其中键是所有者ID,值是属于该所有者的事物数组。 在我的例子中,因为我需要将映射值传递给一个需要数组的库方法,所以收集到一个< code >映射中是

  • 我有一个作业要创建一个应用程序,当通过微调器选择学生的名字时,该应用程序会显示学生的名字和最终字母等级。我已经用名称设置了微调器,我已经从存储在资产中的文本文件中读取了名称和等级。我使用StringBuilder将该文件中的所有信息拆分为一个字符串数组。我想将这些数据解析成一个名为Student的对象,这样我就可以处理每个学生的成绩,但我不知道如何做到这一点。感谢您的帮助! 文本文件: 到目前为止

  • 问题内容: 我很难找到一种方法来解析JSONArray。看起来像这样: 如果JSON的写法不同,我知道如何解析它(换句话说,如果我返回了json对象而不是对象数组)。但这就是我所必须拥有的。 *编辑:这是一个有效的json。我使用此json制作了一个iPhone应用,现在我需要在Android上使用它,但无法弄清楚。有很多示例,但是它们都是与JSONObject相关的。我需要JSONArray。