Ios 如何解析TableView中的嵌套JSON数组?

Ios 如何解析TableView中的嵌套JSON数组?,ios,swift,Ios,Swift,我使用的端点返回JSON作为响应。问题是响应json对我来说是一个需要处理的巨大数据。因此,我希望显示所有要在tableview中显示的Surah(英语名称)名称。我作为一个新手尽了最大的努力来开发iOS。请看一下我的代码片段,让我知道我哪里做错了 视图控制器代码: var surahName = [Surah]() @IBOutlet weak var tableView: UITableView! override func viewDidLoad() { super.view

我使用的端点返回JSON作为响应。问题是响应json对我来说是一个需要处理的巨大数据。因此,我希望显示所有要在tableview中显示的Surah(英语名称)名称。我作为一个新手尽了最大的努力来开发iOS。请看一下我的代码片段,让我知道我哪里做错了

视图控制器代码:

var surahName = [Surah]()

@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()
}


//MARK: JSON parse
func parseJSON()  {
    let url = URL(string: "https://api.alquran.cloud/v1/quran/ar.alafasy")
    
    guard url != nil else{
        print("URL Founr Nill")
        return
    }
    
    URLSession.shared.dataTask(with: url!) { (data, response, error) in
        if error == nil && data != nil{
            do{
                self.surahName = try JSONDecoder().decode([Surah].self, from: data!)

                DispatchQueue.main.async {
                    self.tableView.reloadData()
                }
            }catch{
                print(error)
            }
        }
    }.resume()
}

//MARK: Tableview delegate
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return surahName.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell:QuranAudioCell = tableView.dequeueReusableCell(withIdentifier: "cell") as! QuranAudioCell
    let arrdata = surahName[indexPath.section].data.surahs
    cell.nameLbl.text = arrdata[indexPath.row].englishName
    return cell
}
问题是它没有在tablview中打印任何内容。

将第一行更改为

var surahNames = [EnglishName]()
里面有没有换卡

self.surahName = try JSONDecoder().decode([Surah].self, from: data!)
进入

现在在cellForRowAtIndexPath中执行此操作

let surah = surahName[indexPath.row]
cell.nameLbl.text = surah.englishName

谢谢你,兄弟。非常感谢你的帮助。我发现你也是孟加拉人。很高兴认识你。如果你能与我分享你的LinkedIn个人资料,我将非常高兴和感激,这将是一个关注你的好机会。欢迎兄弟@Asifmimi
let surah = surahName[indexPath.row]
cell.nameLbl.text = surah.englishName