O que é o SwiftyJSON?
O SwiftyJSON é uma biblioteca de terceiros para decodificar arquivos JSON com mais facilidade no seu projeto Xcode.
Por que você precisa dele?
É considerada a melhor prática codificar e decodificar JSON com um tipo predefinido. No entanto, a desvantagem de usar o JSONDecoder nativo é que lidar com JSON dinâmico é trabalhoso. Mesmo que você consiga fazer isso, ainda seria necessário muito trabalho só para acertar, o que não é o ideal.
Exemplo de JSON dinâmico
Imagine que você tem um JSON parecido com este:
{ "data": { "variable_1": "some text" }}Onde a chave variable_1 será alterada dinamicamente, você não pode simplesmente decodificar os dados usando data.title. E se da próxima vez for data.description?
Em JavaScript, podemos fazer isso facilmente:
let dynamicKey = 'variable'const json = JSON.parse(JSONObejct)console.log(json.data[`${dynamicKey}_1`])Você pode acessar o valor apenas colocando uma string dinâmica dentro de [] depois de data. No entanto, você não pode fazer isso em Swift.
É por isso que o SwiftyJSON entra em cena.
Para fazer parse de um JSON usando o SwiftyJSON
Com a ajuda do SwiftyJSON, você pode fazer isto:
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}É praticamente a mesma forma que você faz em JavaScript.
Direto e simples.
Considerações finais
Embora a biblioteca ainda funcione, ela não é mais mantida. O último commit foi há 2 anos.
Ainda vou continuar usando-a nos meus projetos, porque ela me poupa muito tempo e trabalho.
É quase uma biblioteca indispensável para lidar com JSON.