我是Swift的新手,在我的代码中,我从某封电子邮件中获取JSON,首先将JSON数据以swift的形式放入Array,但是如果该数组为null或没有Json数据,则会出现此错误

无法将类型'NSNull'(0x1067a5748)的值强制转换为'NSArray'(0x1067a4c58)。

我一直在尝试通过阅读其他帖子(例如Check if optional array is empty)来解决此问题,但它不起作用。该问题随以下代码一起提供

session.dataTask(with:request, completionHandler: {(data, response, error) in
            if error != nil {
                   print(error)
            } else {
                do {

                    let parsedData = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any]
                    if let musicJob = parsedData["music"] as! [AnyObject]?  {

    for S in musicjob {
                        if let genre = S["genre"] as? String {
                            self.genres.append(genre)
                        }
}
}

如果Json为null,则在此行上将收到错误消息
if let musicJob = parsedData["music"] as! [AnyObject]?

musicJob 对对象的数量进行计数,例如“30个值或44个值”等。如果没有Json,则返回nil并崩溃。 我是否仍然可以捕获nil或空数组的值,以使应用程序不会崩溃? 同样,只要musicJob数组不为空,一切都可以正常工作。

最佳答案

试试这个:

if let musicJob = parsedData["music"] as? [AnyObject]

关于ios - iOS快速获取Json数据时如何检查空数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40756199/

10-12 00:40
查看更多