Qu’est-ce que SwiftyJSON ?
SwiftyJSON est une bibliothèque tierce qui permet de décoder plus facilement un fichier JSON dans votre projet Xcode.
Pourquoi en avez-vous besoin ?
Il est considéré comme une bonne pratique d’encoder et de décoder du JSON avec un type prédéfini. Cependant, l’inconvénient d’utiliser le JSONDecoder intégré est qu’il est pénible de gérer du JSON dynamique. Même si vous parveniez à le faire, cela demanderait encore beaucoup de travail pour obtenir un résultat correct, ce qui n’est pas idéal.
Exemple de JSON dynamique
Imaginez que vous ayez un JSON qui ressemble à ceci :
{ "data": { "variable_1": "some text" }}Lorsque la clé variable_1 change dynamiquement, vous ne pouvez pas simplement décoder les données avec data.title. Et si la prochaine fois c’était data.description ?
En JavaScript, on peut facilement faire ceci :
let dynamicKey = 'variable'const json = JSON.parse(JSONObejct)console.log(json.data[`${dynamicKey}_1`])Vous pouvez accéder à la valeur simplement en plaçant une chaîne dynamique dans les [] après data. Cependant, vous ne pouvez pas faire cela en Swift.
C’est pourquoi SwiftyJSON entre en jeu.
Analyser un JSON avec SwiftyJSON
Avec l’aide de SwiftyJSON, vous pouvez faire ceci :
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}C’est à peu près la même façon de faire qu’en JavaScript.
Direct et simple.
En résumé
Même si la bibliothèque fonctionne toujours, elle n’est plus maintenue. Le dernier commit date de 2 ans.
Je continuerai toutefois à l’utiliser pour mes projets, car elle me fait gagner beaucoup de temps et m’évite bien des tracas.
Une bibliothèque presque indispensable pour manipuler du JSON.