Ich lerne Swift lang und eines der Dinge, die großartig wären, wenn man andere darüber hört, ist: "Wie handelst du mit Modellen aus JSON-Antworten?" Zum Beispiel -
Ich habe User.swift
model:
und ich möchte auch KeyValueObjectMapping verwenden, wie ich es in Obj-C-Projekten mache. Leider funktioniert das hier nicht:
%Vor%Wie erstellen Sie Ihre Modelle in Swift?
Ich empfehle die Code-Generierung, um Modelle in Swift basierend auf JSON zu generieren. Zu diesem Zweck habe ich unter Ссылка ein Tool erstellt, mit dem JSON so einfach wie möglich modelliert und analysiert werden kann.
Nachdem Sie dem Tool ein Beispiel-JSON-Objekt mit einem Klassennamen übergeben haben, generiert es eine entsprechende Swift-Klasse sowie alle erforderlichen Swift-Zweigklassen, um die vom Beispiel-JSON implizierte Struktur darzustellen. Ebenfalls enthalten sind Klassenmethoden, die zum Füllen von Swift-Objekten verwendet werden, einschließlich einer Methode, die die NSJSONSerialization.JSONObjectWithData-Methode verwendet. Die erforderlichen Zuordnungen von NSArray- und NSDictionary-Objekten werden bereitgestellt.
Nachdem Sie den generierten Code als Swift-Klasse (n) in Ihr Projekt kopiert haben, müssen Sie nur noch ein NSData-Objekt mit JSON angeben, das mit dem für das Werkzeug bereitgestellten Muster übereinstimmt.
Außer Foundation gibt es keine Abhängigkeiten.
So erstellen Sie ein NSData-Objekt aus einer JSON-Datei zum Testen.
%Vor%Ich würde vorschlagen, SwiftyJSONModel zu verwenden, da Ihr Modell etwa wie folgt aussehen würde:
%Vor%Diese Bibliothek hat 3 schöne Dinge:
String
umwandeln, da die Bibliothek den Typ enum
eingeschlossen, wodurch Sie bei der Eingabe der Schlüssel automatisch erkannt und sichergestellt werden, dass Sie nicht auf Schlüssel zugreifen können, die nicht in enum Ich benutze jsoncafe einfachste und anpassbare Vorlage Basismodell Klassengenerator mit verschiedenen Framwroks wie SwiftyJSON, Codable, Glanz, einfache Swift Class auch Sie kann deine eigene Vorlage machen
Wenn Sie einen rigoroseren Ansatz wünschen und Zugriff auf JSON-Schemas als Meta-Beschreibung für Ihre JSON-Dokumente haben, habe ich einen Code-Generator geschrieben, der diese verarbeiten kann (JSON-Schema, Entwurf 4):
Meine Werkzeuge unterstützen grundsätzlich jede Programmiersprache, da sie auf Codegenerierungsvorlagen basiert, aber sich momentan auf ObjectiveC und Swift 4 Support konzentriert.