Swift:从JSON编码数据获取数组

时间:2018-11-20 10:51:35

标签: arrays json swift

我有一个使用GCD下载的JSON编码数据。您可以通过以下链接查看JSON的编码方式:https://quiz2019.herokuapp.com/api/quizzes?token=8fda199c75cb200b0f85

我想访问该JSON中的每个数据,但无法实现。我尝试这样做:

let arrayData = try? JSONSerialization.jsonObject(with: data, options: [])

但是在此之后,我不知道如何访问阵列上的每个数据。有想法吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试

struct Root: Codable {
    let quizzes: [Quiz]
    let pageno: Int
    let nextURL: String

    enum CodingKeys: String, CodingKey {
        case quizzes, pageno
        case nextURL = "nextUrl"
    }
}

struct Quiz: Codable {
    let id: Int
    let question: String
    let author: Author?
    let attachment: Attachment
    let favourite: Bool
    let tips: [String]
}

struct Attachment: Codable {
    let filename: String
    let mime: MIME
    let url: String
}

enum MIME: String, Codable {
    case imageJPEG = "image/jpeg"
}

struct Author: Codable {
    let id: Int
    let isAdmin: Bool?
    let username: String
}

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

答案 1 :(得分:1)

您也可以通过Sh_khan使用上述本机解决方案(因为本机解决方案始终是最佳且快速的) 要么 另一种解决方案是您可以使用Object Mapper

这是最好的json解析库之一,非常简单。 只需写一行:-

let user = Mapper<User>().map(JSONString: JSONString)

您可以使用Json Export将json转换为模型。

希望它会有所帮助:)