Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift 5中解析这个嵌套的json?_Ios_Swift_Xcode_Swift5 - Fatal编程技术网

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

Ios 如何在Swift 5中解析这个嵌套的json?,ios,swift,xcode,swift5,Ios,Swift,Xcode,Swift5,在iOS中,如何解析这个JSON { "status": 1, "data": [ { "month": "8-2019", "jobs": [ { "jobId": 4, "jobTitle": "", "jobDesc": "", "jobDate": "26 Sep 2019", "jobVenue": "Singapore",

在iOS中,如何解析这个JSON

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

您可以使用类似于创建可编码类的服务。作为起点,您应该阅读更多关于

您可以使用以下代码来解析此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)

显示您的代码您从何处复制此代码?我对此非常好奇,因为这不是第一次,所以我看到有人在回答中使用了奇怪的类
newJSONDecoder
。我已经发布了你问题的答案:结构是由
quicktype
网站自动生成的。您只需发布JSON,它将生成解码所需的所有类/结构。很有用。对不起,你说得对。这似乎是生成的代码中的错误。应该是
JSONDecoder
。现在我明白了。我通常只生成结构,而不生成代码的其余部分,但现在我对其进行了测试,发现newJSONDecoder实际上是一个由quicktype生成的函数,它返回一个解码器。这也意味着quicktype生成错误处理的可怕的
try?