Was ist SwiftyJSON?
SwiftyJSON ist eine Drittanbieter-Bibliothek, mit der Sie JSON-Dateien in Ihrem Xcode-Projekt einfacher dekodieren können.
Warum brauchen Sie sie?
Es gilt als Best Practice, JSON mit vordefinierten Typen zu kodieren und zu dekodieren. Der Nachteil des eingebauten JSONDecoder ist jedoch, dass der Umgang mit dynamischem JSON mühsam ist. Selbst wenn Sie es hinbekommen, erfordert es immer noch viel Arbeit, bis es richtig funktioniert – was nicht ideal ist.
Beispiel für dynamisches JSON
Stellen Sie sich vor, Sie haben ein JSON, das so aussieht:
{ "data": { "variable_1": "some text" }}Wenn sich der Schlüssel variable_1 dynamisch ändert, können Sie die Daten nicht einfach mit data.title dekodieren. Was, wenn es beim nächsten Mal data.description ist?
In JavaScript können wir das ganz einfach machen:
let dynamicKey = 'variable'const json = JSON.parse(JSONObejct)console.log(json.data[`${dynamicKey}_1`])Sie können auf den Wert zugreifen, indem Sie einfach einen dynamischen String in [] hinter data setzen. In Swift geht das jedoch nicht.
Deshalb kommt SwiftyJSON ins Spiel.
Ein JSON mit SwiftyJSON parsen
Mit Hilfe von SwiftyJSON können Sie Folgendes tun:
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}Das funktioniert so ziemlich genauso wie in JavaScript.
Direkt und einfach.
Fazit
Obwohl die Bibliothek noch funktioniert, wird sie nicht mehr gepflegt. Der letzte Commit ist 2 Jahre her.
Ich werde sie trotzdem weiterhin für meine Projekte verwenden, denn sie spart mir viel Zeit und Mühe.
Eine nahezu unverzichtbare Bibliothek für den Umgang mit JSON.