parser - json swift ios
Analizar un objeto devuelto como JSON de API en swift (1)
He recibido un objeto de respuesta (res) rápidamente de REST API
. Es de tipo. __NSArrayM
. Contiene una cadena de formato JSON que quiero analizar.
{ JsonResult = "[ { /"IsAuth/":/"true/" } ]"; }
Es una cadena larga de JSON y la he acortado por simplicidad.
Para analizar un json, el objeto debe ser de tipo Dictionary, pero no puedo convertir el objeto de tipo __NSArrayM
en él.
Busqué mucho pero no puedo entender de todos modos para leer esta cadena JSON.
Adicional: Cualquiera que sea el objeto que intento lanzar el objeto de respuesta. Me sale el error -
No se pudo convertir el valor del tipo ''__NSArrayM'' (0x107e86c30) en ''NSData'' (0x107e86168) o en cualquier tipo de datos que arroje.
Hagamos esto paso a paso.
Usted dice que tiene un objeto llamado "res" que es del tipo __NSArrayM
y que contiene esta cosa:
{ JsonResult = "[ { /"IsAuth/":/"true/" } ]"; }
Significa que ya ha convertido el JSON en un objeto, es decir, un NSArray.
En esta matriz que no vemos , lo que nos muestra es un diccionario (al que llamaremos "dict") cuyo valor es una cadena que a su vez representa otro objeto JSON .
Vamos a obtener el valor usando la clave:
if let value = dict["JsonResult"] as? String {
print(value)
}
Ahora se supone que "valor" es "[ { /"IsAuth/":/"true/" } ]"
.
Esta es una cadena que representa JSON. Para decodificar el JSON, primero tenemos que convertir la cadena en datos, luego podemos decodificar:
if let data = value.data(using: .utf8) {
if let content = try? JSONSerialization.jsonObject(with: data, options: []),
let array = content as? [[String: Any]]
{
print(array)
}
}