我是 swift 的新手,在我的代码中,我从某封电子邮件中获取 JSON,JSON 数据首先在 swift 中放入数组,但是如果数组为空或没有 Json 数据,我会收到此错误
Could not cast value of type 'NSNull' (0x1067a5748) to '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 为空,我会在此处收到此行的错误
if let musicJob = parsedData["music"] as! [AnyObject]?
musicJob 计算对象的数量,例如“30 个值或 44 个值”等。如果没有 Json,则返回 nil 并崩溃。 无论如何,我是否可以捕获 nil 或空数组的值,以便应用程序不会崩溃?同样,只要 musicJob 数组不为空,一切正常。
最佳答案
试试这个:
if let musicJob = parsedData["music"] as? [AnyObject]
关于IOS swift 如何在获取 Json 数据时检查空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40756199/