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

回到顶部