read parser parse how array ios json swift api azure

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) } }