Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift 3中解析JSON数组_Ios_Json_Dictionary_Swift3 - Fatal编程技术网

Ios 如何在Swift 3中解析JSON数组

Ios 如何在Swift 3中解析JSON数组,ios,json,dictionary,swift3,Ios,Json,Dictionary,Swift3,我从套接字中获取了一些数据,我想访问这些数据,但每次都会收到错误消息,称无法将NSArray转换为NSDictionary struct SocketEventHandler { let event: String let id: UUID let callback: NormalCallback func executeCallback(with items: [Any], withAck ack: Int, withSocket socket: Socket

我从套接字中获取了一些数据,我想访问这些数据,但每次都会收到错误消息,称无法将NSArray转换为NSDictionary

struct SocketEventHandler {
    let event: String
    let id: UUID
    let callback: NormalCallback

    func executeCallback(with items: [Any], withAck ack: Int, withSocket socket: SocketIOClient) {
        callback(items, SocketAckEmitter(socket: socket, ackNum: ack))
    }
}


let onFriendRequestStatus: NormalCallback = {dataArray,socketAck in
        AppLog.debug(tag: TAG, msg: "Response: \(dataArray)")
        AppLog.debug(tag: TAG, msg: "Response: \(dataArray[0])")
        let response  = dataArray[0] as! Dictionary<String, Any> **// APP CRASHES ON THIS LINE**
}

错误-无法将“\uu NSArrayM”(0x102f0de00)类型的值强制转换为“NSDictionary”(0x102f0e2d8)。

可能是因为您使用的是2d数组,这意味着
dataArray
的元素也是
array
而不是
Dictionary

if let response = dataArray[0] as? [[String: Any]], let dictionary = response.first {

    print(dictionary["status"])
}

在句子崩溃时设置断点,然后使用以下命令检查
dataArray
的确切内容:

po print(dataArray)
po print(dataArray)