Json 无法强制转换类型为'__NSCFDictionary';至';不可变数组

Json 无法强制转换类型为'__NSCFDictionary';至';不可变数组,json,swift,Json,Swift,我向区块链API发出GET请求,以下是我得到的: { "USD": { "15m": 1973.51, "last": 1973.51, "buy": 1973.51, "sell": 1970.5, "symbol": "$" }, "ISK": { "15m": 204455.64, "last": 204455.64, "buy": 204

我向区块链API发出GET请求,以下是我得到的:

{
    "USD": {
        "15m": 1973.51,
        "last": 1973.51,
        "buy": 1973.51,
        "sell": 1970.5,
        "symbol": "$"
    },
    "ISK": {
        "15m": 204455.64,
        "last": 204455.64,
        "buy": 204455.64,
        "sell": 204143.8,
        "symbol": "kr"
    },
    "HKD": {
        "15m": 15400.36,
        "last": 15400.36,
        "buy": 15400.36,
        "sell": 15376.88,
        "symbol": "$"
    },
    "TWD": {
        "15m": 59959.18,
        "last": 59959.18,
        "buy": 59959.18,
        "sell": 59867.73,
        "symbol": "NT$"
    }
}
我尝试解析USD子对象,这是我的代码:

let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
            if (error != nil) {
                print(error);

            } else {

                let responseData = String(data: data!, encoding: String.Encoding.utf8);
                print(responseData);
                var USD = [String]()
                do{
                    if let ipString = NSString(data:data!, encoding: String.Encoding.utf8.rawValue) {
                        let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [NSDictionary];
                        USD = json.map { ($0 as! [String: AnyObject])["USD"] as! String }


                    }
                }
                catch{
                    print("Parse JSON failed")
                }
            }
        })
但当我运行它时,出现了一个错误:

无法将类型为“\uu NSDictionaryM”的值强制转换为“NSArray”


我知道,
USD
更像一个
[String:AnyObject]
,但它也不起作用。有解决方案吗?

这里没有一个json响应是数组类型的,都是字典类型的。这样做,希望它能解决您的问题:

var USD = [String: AnyObject]()
    do{
        if let ipString = NSString(data:data!, encoding: String.Encoding.utf8.rawValue) {
            let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String: AnyObject];
            if let usd = json.["USD"] as? [String: AnyObject] {
                USD = usd
            }


        }
    }
    catch{
        print("Parse JSON failed")
    }

为什么要使用
NSString
NSDictionary