【问题标题】:How to extract and make specific arrays from JSON in Swift 4?如何在 Swift 4 中从 JSON 中提取和制作特定数组?
【发布时间】:2019-02-03 05:07:24
【问题描述】:

我对 swift 非常陌生,并试图从 Json 响应中提取信息并将它们保存在一些单独的数组中。

这是我的 Json:

{
    "result": {
        "date": [
            {
                "TestDate": 970606
            },
            {
                "TestDate": 980703
            }
        ],
        "headId": [
            {
                "AreaCode": 200,
                "AreaName": "center"
            },
            {
                "AreaCode": 300,
                "AreaName": "Middle"
            }
        ]
    }
}

我想有一个AreaName 的数组和另一个TestDate 的数组。

你能告诉我怎么做吗?

【问题讨论】:

标签: ios json swift swift4


【解决方案1】:

您使用 Decodable 解码 JSON,然后从中挑选出您想要的部分:

import Foundation

struct Response: Decodable {
    struct Result: Codable {
        let headID: [HeadID]
        let date: [DateElement]

        enum CodingKeys: String, CodingKey {
            case headID = "headId"
            case date
        }
    }

    struct DateElement: Codable {
        let testDate: Int

        enum CodingKeys: String, CodingKey {
            case testDate = "TestDate"
        }
    }

    struct HeadID: Codable {
        let areaCode: Int
        let areaName: String

        enum CodingKeys: String, CodingKey {
            case areaCode = "AreaCode"
            case areaName = "AreaName"
        }
    }

    let result: Result
}

let data = """
{
  "result": {
    "headId": [
      {
        "AreaCode": 200,
        "AreaName": "center"
      },
      {
        "AreaCode": 300,
        "AreaName": "Middle"
      }
    ],
    "date": [
      {
        "TestDate": 970606
      },
      {
        "TestDate": 980703
      }
    ]
  }
}
""".data(using: .utf8)!

let response = try JSONDecoder().decode(Response.self, from: data)
let areaNames = response.result.headID.map { $0.areaName }
let testDates = response.result.date.map { $0.testDate }

print(areaNames)
print(testDates)

【讨论】:

  • 感谢您的回答。如果我想从 URL 获取我的 json 数据,我该怎么办?
  • 你能提出一个新问题,详细说明你想要得到什么吗?我这里没有足够的信息来帮助你
【解决方案2】:

我使用的是一个可以为我将 JSON 结构转换为 Swift 的网站,这为我节省了很多时间。 https://app.quicktype.io/

它非常有用,通常只需将结构和类复制并粘贴到我的 Swift 文件中即可完美运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    相关资源
    最近更新 更多