Travailler avec JSON en Swift : analyse et sérialisation pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction au travail avec JSON en Swift

JSON (JavaScript Object Notation) est un format léger d'échange de données largement utilisé dans le développement mobile et web. Pour les développeurs débutants en Swift (iOS/macOS), savoir travailler avec JSON est une compétence essentielle. Dans cet article, nous aborderons deux approches principales : la classique JSONSerialization et le protocole moderne Codable. Vous apprendrez à récupérer des données depuis le réseau, à les analyser et à les reconvertir en JSON pour les envoyer au serveur.

Que vous créiez une application météo, une liste de tâches ou un réseau social, JSON sera votre fidèle compagnon. Commençons par un exemple simple et passons progressivement à des scénarios plus complexes.



Bases de JSON en Swift : structure et types de données

Avant d'écrire du code, il est important de comprendre à quoi ressemble JSON. En Swift, JSON est représenté sous forme de dictionnaires ([String: Any]) et de tableaux ([Any]). Les principaux types de données en JSON sont :

  • Chaînes de caractères — entre guillemets doubles ("Bonjour")
  • Nombres — entiers et à virgule flottante (42, 3.14)
  • Valeurs booléennes — true ou false
  • Tableaux — listes ordonnées de valeurs ([1, 2, 3])
  • Objets — collections non ordonnées de paires "clé-valeur" ({"clé": "valeur"})
  • null — valeur vide

En Swift, il est pratique d'utiliser les structures de données intégrées pour représenter JSON. Regardons un exemple d'objet JSON simple :

{  "name": "Ivan",  "age": 25,  "isStudent": false,  "hobbies": ["lecture", "programmation"]}

Voyons maintenant comment travailler avec ce format dans le code Swift.



Analyse JSON avec JSONSerialization (méthode classique)

Avant l'apparition du protocole Codable, les développeurs utilisaient la classe JSONSerialization. Cette méthode est toujours pertinente, surtout lorsque la structure JSON est inconnue à l'avance ou très dynamique.

Exemple de base d'analyse

Supposons que nous ayons une chaîne JSON à convertir en objets Swift :

let jsonString = """{  "name": "Maria",  "age": 30,  "isEmployed": true}"""

if let jsonData = jsonString.data(using: .utf8) { do { if let dictionary = try JSONSerialization.jsonObject(with: jsonData, options: []) as? [String: Any] { let name = dictionary["name"] as? String ?? "Inconnu" let age = dictionary["age"] as? Int ?? 0 let isEmployed = dictionary["isEmployed"] as? Bool ?? false print("Nom : \\(name), Âge : \\(age), Employé : \\(isEmployed)") } } catch { print("Erreur d'analyse JSON : \\(error.localizedDescription)") }}

Remarque : après avoir obtenu le dictionnaire, nous convertissons explicitement chaque élément au type souhaité. Cela peut être peu pratique avec un grand nombre de champs.



Travail avec les tableaux en JSON

JSON contient souvent des tableaux d'objets. Analysons un exemple avec un tableau d'utilisateurs :

let jsonArrayString = """[  {"name": "Anna", "age": 22},  {"name": "Pierre", "age": 28}]"""

if let data = jsonArrayString.data(using: .utf8) { do { if let users = try JSONSerialization.jsonObject(with: data, options: []) as? [[String: Any]] { for user in users { let name = user["name"] as? String ?? "" let age = user["age"] as? Int ?? 0 print("\\(name) : \\(age) ans") } } } catch { print("Erreur : \\(error)") }}

La méthode JSONSerialization est simple, mais nécessite beaucoup de conversions manuelles de types. Pour les projets modernes, Apple recommande d'utiliser Codable.



Blogs

Book Recommendations