我试图使用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
。