¿Qué es SwiftyJSON?
SwiftyJSON es una biblioteca de terceros para decodificar archivos JSON más fácilmente en tu proyecto de Xcode.
¿Por qué la necesitas?
Se considera una buena práctica codificar y decodificar JSON con un tipo predefinido. Sin embargo, la desventaja de usar el JSONDecoder integrado es que lidiar con JSON dinámico resulta engorroso. Incluso si lograras hacerlo, seguiría requiriendo mucho trabajo solo para hacerlo bien, lo cual no es lo ideal.
Ejemplo de JSON dinámico
Imagina que tienes un JSON como este:
{ "data": { "variable_1": "some text" }}Donde la clave variable_1 cambiará dinámicamente, no puedes simplemente decodificar los datos usando data.title. ¿Y si la próxima vez es data.description?
En JavaScript, podemos hacer esto fácilmente:
let dynamicKey = 'variable'const json = JSON.parse(JSONObejct)console.log(json.data[`${dynamicKey}_1`])Puedes acceder al valor simplemente colocando una cadena dinámica dentro de [] después de data. Sin embargo, no puedes hacer esto en Swift.
Por eso entra en juego SwiftyJSON.
Analizar un JSON usando SwiftyJSON
Con la ayuda de SwiftyJSON, puedes hacer esto:
let json = JSON(data: JSONObejct)let dynamicVar = "variable_1"if let extracted = json[0]["data"]["\(dynamicVar)"].string { // It's wrapped with Optional automatically //Now you got your value inside data.variable_1, just change your variable value for dynamicVar as needed. print(extracted) // some text}Es prácticamente la misma forma en que lo haces en JavaScript.
Directo y sencillo.
Conclusión
Aunque la biblioteca todavía funciona, ya no recibe mantenimiento. El último commit fue hace 2 años.
Aun así, seguiré usándola en mis proyectos, porque me ahorra mucho tiempo y complicaciones.
Casi una biblioteca imprescindible para trabajar con JSON.