如何在 Swift 5 中解析这个嵌套的 json?

Ari*_*ode -2 xcode ios swift swift5

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

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

ine*_*tus 5

您可以使用Quicktype之类的服务来创建 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
    }
}
Run Code Online (Sandbox Code Playgroud)

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

let root= try? JSONDecoder().decode(Root.self, from: jsonData)
Run Code Online (Sandbox Code Playgroud)

  • 你从哪里复制这段代码?我对此非常好奇,因为这不是第一次,所以我看到有人在答案中使用奇怪的类“newJSONDecoder”。 (2认同)