Я хочу получить доступ к некоторым данным моего Json, который находится внутри другого json
вот мой код:
let extraData = userInfo["extraData"] as! [String : Any]
print(extraData["message_id"])
но я получаю ошибку ниже во время работы:
Could not cast value of type '__NSCFString' (0x264300f90) to 'NSDictionary' (0x264301bc0)
вот мой Json:
[AnyHashable("largeIcon"): http://test.png, AnyHashable("notifyType"): notifyData, AnyHashable("ledColor"): #f39c12, AnyHashable("extraData"): {"is_background":0,"message_id":"1156","deep_link":{"action_type":"U","url":"teknik://teknik"}}, AnyHashable("message"): test, AnyHashable("id"): 50368138, AnyHashable("vibrate"): 1, AnyHashable("gcm.message_id"): 0:1544436390847%bebba17fbebba17f, AnyHashable("autoRun"): false, AnyHashable("action"): {"type":"A","url":"Activity.MessageActivityJava"}, AnyHashable("sound"): 3, AnyHashable("title"): newtest, AnyHashable("aps"): { "content-available" = 1; }]





Можешь попробовать
do {
let dd = userInfo["extraData"] as! String
let con = try JSONSerialization.jsonObject(with: dd.data(using: .utf8)!, options: []) as! [String:Any]
print(con["message_id"])
catch {
print(error)
}
поскольку значение extraData - это строка json, а не прямой словарь
Это спасает день, «поскольку значение extraData - это строка json, а не прямой словарь». Спасибо @Sh_Khan