JSON解析使用Swift 4
我完全陌生的网络和解析我花了2连日试图弄清楚如何我可以显示这个API的项目http://api.alquran.cloud/quran/en.asad 例如,我需要所有的名称或任何对象从我有0知识和我尝试上网冲浪的解决方案我无法找到我的情况下,他是我的代码:JSON解析使用Swift 4
struct Result: Codable { var number: [String:Int]
var text: [String:String]
}
struct Surahs: Codable {
var data: Surah
}
struct Surah: Codable { var surahs: [SurahItem]
}
struct SurahItem: Codable { var number: Int?
var text: String?
}
enum CodingKey:String, Swift.CodingKey { case name = "name"
case text = "text"
case number = "number"
}
import UIKit class afasyVC: UIViewController {
func jsonDecoding() {
let jsonUrlString = "http://api.alquran.cloud/quran/en.asad"
guard let url = URL(string: jsonUrlString) else {return}
URLSession.shared.dataTask(with: url) { (data, response, err) in
guard let data = data else {return}
do {
let quraanJsonStuff = try JSONDecoder().decode(SurahItem.self, from: data)
for numbers in [quraanJsonStuff] {
print(quraanJsonStuff)
}
} catch let jsonErr {
print("Error serializing json", jsonErr)
}
}.resume()
}
回答:
在夫特4 JSONDecoder
变换JSON集合类型如下:
- 甲JSON字典
{}
到夫特结构/类。 - 一个JSON数组
[]
到一个Swift数组。
根据该JSON结构是
struct Root: Codable { let code: Int
let status: String
let data : Surah
}
struct Surah: Codable {
let surahs: [SurahItem]
}
struct SurahItem: Codable {
let number: Int
let name: String
let englishName : String
// ... and so on
}
在根对象有一个字典键data
其中包含密钥surahs
阵列为了解码和打印SurahItem
数组写入
let root = try JSONDecoder().decode(Root.self, from: data) for surah in root.data.surahs {
print(surah.number, surah.name, surah.englishName)
}
以上是 JSON解析使用Swift 4 的全部内容, 来源链接: utcz.com/qa/263737.html