预期解码字典<字符串,任何>但找到了一个数组。



我试图使用swift 4和decode解析一些json。我困惑的是

需要解码Dictionary<字符串,Any>,但找到了一个数组。",underlyingError:nil((

我是使用解码的新手,也是swift的新手,所以我想知道为什么会出现这个错误,我想我并没有真正以正确的方式定义我的结构。

这就是我如何定义我的结构

struct QuizDesc: Decodable {
let title: String
let desc: String
let questions: [Questions]
}
struct Questions: Decodable {
let text: String
let answer: Int
let answers: [Answers]
}
struct Answers: Decodable {
let answerOne: String
let answerTwo: String
let answerThree: String
let answerFour: String
}

这就是我如何使用解码功能

let jsonString = "http://tednewardsandbox.site44.com/questions.json"
guard let url = URL(string: jsonString)else {return}
URLSession.shared.dataTask(with: url) { (data, response, err) in
guard let data = data else{return}
do {
let quiz = try JSONDecoder().decode(QuizDesc.self, from: data)
print(quiz.title)
} catch let jsonErr {
print("Error", jsonErr)
}
}.resume()

这是我用来提取json数据的链接http://tednewardsandbox.site44.com/questions.json

您的JSON是QuizDesc的数组。将QuizDesc.self更改为[QuizDesc].self。然后将quiz重命名为quizzes

最新更新