我有一个使用GCD下载的JSON编码数据。您可以通过以下链接查看JSON的编码方式:https://quiz2019.herokuapp.com/api/quizzes?token=8fda199c75cb200b0f85
我想访问该JSON中的每个数据,但无法实现。我尝试这样做:
let arrayData = try? JSONSerialization.jsonObject(with: data, options: [])
但是在此之后,我不知道如何访问阵列上的每个数据。有想法吗?
答案 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转换为模型。
希望它会有所帮助:)