Swift 3-下载此数据后无法检索信息

时间:2018-11-17 09:00:20

标签: ios json swift

我正在尝试访问从如下网站下载的数据:

{"quizzes":[
{"id":1, "question": "Can't solve this :("},
{"id":2, "question": "Someone help pls"}]}

下载的数据看起来更加复杂,具有更多的值,更多的键,并且某些键与另一个Key:String字典相关联,但是由于我什至无法访问最简单的字段,因此我认为我将从此开始

我正在使用JSONSerialization,所以我的问题是:

如果我想创建一个变量来保存下载的数据,它将是哪种类型?我会说[String:[String:Any]],但是我不确定“测验”是否代表此特定键上的键,因为数据以'{'开头,而不是以'['。

1 个答案:

答案 0 :(得分:0)

可以使用JSONDecoder代替使用JSONSerialization。

示例

struct Question: Decodable {
    let id: Int
    let question: String
}

struct Quiz: Decodable {
    let quizzes: [Question]
}

假设jsonStr是一个字符串,其中包含您所问的JSON:

if let jsonData = jsonStr.data(using: .utf8) {
    if let quiz = try? JSONDecoder().decode(Quiz.self, from: jsonData) {
        for question in quiz.quizzes {
            print("\(question.id) \"\(question.question)\"")
        }
    }
}

输出

1 "Can't solve this :("
2 "Someone help pls"