J'ai reçu un object de réponse (res) dans swift à partir de l' REST API
. C'est de type. __NSArrayM
. Il contient une string de format JSON que je veux parsingr.
{ JsonResult = "[ { \"IsAuth\":\"true\" } ]"; }
C'est une longue string JSON et je l'ai raccourcie pour plus de simplicité.
Pour parsingr un file json, l'object doit être de type Dictionnaire, mais je ne peux pas y __NSArrayM
l'object de type __NSArrayM
.
J'ai beaucoup cherché mais je n'arrive toujours pas à comprendre cette string JSON.
Supplémentaire: Quel que soit l'object que j'essaie de lancer l'object de réponse. J'ai l'erreur –
Impossible de convertir la valeur de type '__NSArrayM' (0x107e86c30) en 'NSData' (0x107e86168) ou le type de données dans lequel je suis entré.
Faisons cela étape par étape.
Vous dites que vous avez un object nommé "res" qui est de type __NSArrayM
et qui contient cette chose:
{ JsonResult = "[ { \"IsAuth\":\"true\" } ]"; }
Cela signifie que vous avez déjà converti le JSON en un object, à savoir un NSArray.
Dans ce tableau que nous ne voyons pas , ce que vous nous montrez est un dictionary (que nous nommerons "dict") avec sa valeur étant une string qui représente elle-même un autre object JSON .
Obtenons la valeur en utilisant la key:
if let value = dict["JsonResult"] as? Ssortingng { print(value) }
Maintenant, "value" est censé être "[ { \"IsAuth\":\"true\" } ]"
.
Ceci est une string qui représente JSON. Pour décoder le JSON, nous devons d'abord faire la string en données puis nous pouvons décoder:
if let data = value.data(using: .utf8) { if let content = try? JSONSerialization.jsonObject(with: data, options: []), let array = content as? [[Ssortingng: Any]] { print(array) } }