首页 > 解决方案 > 如何在 Swift 5 中解析这个嵌套的 json?

问题描述

在 iOS 中,如何解析这个 JSON?

{
  "status": 1,
  "data": [
    {
      "month": "8-2019",
      "jobs": [
        {
          "jobId": 4,
          "jobTitle": "",
          "jobDesc": "",
          "jobDate": "26 Sep 2019",
          "jobVenue": "Singapore",
          "jobAccept": "N"
        }
      ]
    }
  ],
  "message": "Success"
}

标签: iosswiftxcodeswift5

解决方案


您可以使用 quicktype 之类的服务来创建 Codable 类作为起点,您应该阅读有关Codable 协议的更多信息

您可以使用以下代码来解析此 JSON:

import Foundation

// MARK: - Root
struct Root: Codable {
    let status: Int
    let data: [Datum]
    let message: String
}

// MARK: - Datum
struct Datum: Codable {
    let month: String
    let jobs: [Job]
}

// MARK: - Job
struct Job: Codable {
    let jobID: Int
    let jobTitle, jobDesc, jobDate, jobVenue: String
    let jobAccept: String

    enum CodingKeys: String, CodingKey {
        case jobID = "jobId"
        case jobTitle, jobDesc, jobDate, jobVenue, jobAccept
    }
}

您可以使用此代码将 JSON 转换为对象:

let root= try? JSONDecoder().decode(Root.self, from: jsonData)

推荐阅读