Arbeiten mit JSON in Swift: Parsing und Serialisierung für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in die Arbeit mit JSON in Swift

JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat, das in der mobilen und Webentwicklung weit verbreitet ist. Für angehende Swift-Entwickler (iOS/macOS) ist die Fähigkeit, mit JSON zu arbeiten, eine unverzichtbare Fähigkeit. In diesem Artikel werden wir zwei Hauptansätze behandeln: die klassische JSONSerialization und das moderne Protokoll Codable. Sie erfahren, wie Sie Daten aus dem Netzwerk abrufen, parsen und zurück in JSON umwandeln, um sie an den Server zu senden.

Egal, ob Sie eine Wetter-App, eine Aufgabenliste oder ein soziales Netzwerk erstellen – JSON wird Ihr treuer Begleiter sein. Beginnen wir mit einem einfachen Beispiel und gehen schrittweise zu komplexeren Szenarien über.



Grundlagen von JSON in Swift: Struktur und Datentypen

Bevor wir Code schreiben, ist es wichtig zu verstehen, wie JSON aussieht. In Swift wird JSON als Wörterbücher ([String: Any]) und Arrays ([Any]) dargestellt. Die grundlegenden Datentypen in JSON sind:

  • Zeichenketten – in doppelte Anführungszeichen gesetzt ("Hallo")
  • Zahlen – ganze Zahlen und Gleitkommazahlen (42, 3.14)
  • Boolesche Werte – true oder false
  • Arrays – geordnete Listen von Werten ([1, 2, 3])
  • Objekte – ungeordnete Sammlungen von Schlüssel-Wert-Paaren ({"key": "value"})
  • null – ein leerer Wert

In Swift ist es praktisch, die integrierten Datenstrukturen zur Darstellung von JSON zu verwenden. Betrachten wir ein Beispiel eines einfachen JSON-Objekts:

{  "name": "Ivan",  "age": 25,  "isStudent": false,  "hobbies": ["Lesen", "Programmieren"]}

Sehen wir uns nun an, wie man mit diesem Format im Swift-Code arbeitet.



JSON-Parsing mit JSONSerialization (klassische Methode)

Vor der Einführung des Codable-Protokolls verwendeten Entwickler die Klasse JSONSerialization. Diese Methode ist immer noch relevant, insbesondere wenn die JSON-Struktur im Voraus unbekannt oder sehr dynamisch ist.

Basisbeispiel für Parsing

Angenommen, wir haben einen JSON-String, der in Swift-Objekte umgewandelt werden soll:

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 ?? "Unbekannt" let age = dictionary["age"] as? Int ?? 0 let isEmployed = dictionary["isEmployed"] as? Bool ?? false print("Name: \\(name), Alter: \\(age), Angestellt: \\(isEmployed)") } } catch { print("JSON-Parsing-Fehler: \\(error.localizedDescription)") }}

Beachten Sie: Nach dem Erhalten des Wörterbuchs führen wir eine explizite Typumwandlung für jedes Element durch. Dies kann bei vielen Feldern umständlich sein.



Arbeiten mit Arrays in JSON

Oft enthält JSON Arrays von Objekten. Betrachten wir ein Beispiel mit einem Array von Benutzern:

let jsonArrayString = """[  {"name": "Anna", "age": 22},  {"name": "Peter", "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) Jahre") } } } catch { print("Fehler: \\(error)") }}

Die Methode JSONSerialization ist einfach, erfordert jedoch viel manuelle Typumwandlung. Für moderne Projekte empfiehlt Apple die Verwendung von Codable.



Blogs

Buchempfehlungen