Как разобрать массив JSON в Swift 3 [дубликаты]

На этот вопрос уже есть ответ:

Правильный анализ JSON в Swift 3 7 ответов

Я получаю из 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**
}

Отклик :

[
    {
        "status": "A",
        "acceptorId": 126,
        "id": 94,
        "createdAt": "2017-06-05T09:50:42.000Z",
        "updatedAt": "2017-06-05T09:52:26.000Z",
        "userId": 126,
        "friendId": 401
    }
]

Error - Не удалось привести значение типа «__NSArrayM» (0x102f0de00) к «NSDictionary» (0x102f0e2d8).

Ответы на вопрос(2)

Ваш ответ на вопрос