IOS swift如何在获取Json数据时检查空数组

use*_*387 1 arrays ios swift anyobject swift3

我是swift的新手,在我的代码中我从某个电子邮件中获取JSON,JSON数据首先被放入swift的数组中,但是如果数组为null或者没有Json数据我得到这个错误

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

我一直试图通过阅读其他帖子来解决这个问题,例如检查可选数组是否为空,但它不起作用.问题来自下面的代码

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)
                        }
}
}
Run Code Online (Sandbox Code Playgroud)

如果Json为null,我就会在这一行得到错误

if let musicJob = parsedData["music"] as! [AnyObject]?
Run Code Online (Sandbox Code Playgroud)

所述musicJob计数的对象,例如"30个值或44个值"等的数量.如果没有Json那么它返回nil并且它崩溃了.反正我是否可以捕获nil或空数组的值,以便应用程序不会崩溃?只要musicJob数组不为空,一切都有效.

Bis*_*sta 6

试试这个:

if let musicJob = parsedData["music"] as? [AnyObject]
Run Code Online (Sandbox Code Playgroud)