Swift:
Arbeiten mit JSON

How to:

Swift macht das Arbeiten mit JSON mit der Codable-Schnittstelle einfach. Hier ist ein Grundbeispiel:

import Foundation

// Definiere ein Codable Model
struct User: Codable {
    var name: String
    var age: Int
}

// JSON-String
let jsonString = "{\"name\": \"Anna\", \"age\": 28}"

// JSON in ein User-Objekt umwandeln
if let jsonData = jsonString.data(using: .utf8) {
    do {
        let user = try JSONDecoder().decode(User.self, from: jsonData)
        print(user) // Output: User(name: "Anna", age: 28)
    } catch {
        print("Fehler beim Parsen: \(error)")
    }
}

// Ein User-Objekt in JSON umwandeln
let user = User(name: "Max", age: 35)
do {
    let jsonData = try JSONEncoder().encode(user)
    if let jsonString = String(data: jsonData, encoding: .utf8) {
        print(jsonString) // Output: {"name":"Max","age":35}
    }
} catch {
    print("Fehler beim Konvertieren: \(error)")
}

Deep Dive

JSON wurde Anfang der 2000er Jahre als Alternative zu XML beliebt. Es ist einfacher zu lesen und zu schreiben. Alternativen wie YAML oder BSON existieren, aber JSON dominiert wegen seiner Einfachheit und Allgegenwart. Swifts Codable-Schnittstelle, eingeführt in Swift 4, hat das Codieren und Decodieren von JSON erheblich vereinfacht, da es Auto-Synthese von CodingKeys ermöglicht und viel Boilerplate-Code unnötig macht.

See Also