Swift - Erstellt ein Datenmodell aus der JSON-Antwort

8

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:

%Vor%

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?

    
Kosmetika 29.06.2014, 12:05
quelle

5 Antworten

8

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%     
Perry Tribolet 05.08.2015, 21:30
quelle
4

Ich würde vorschlagen, SwiftyJSONModel zu verwenden, da Ihr Modell etwa wie folgt aussehen würde:

%Vor%

Diese Bibliothek hat 3 schöne Dinge:

  1. Sie müssen nicht explizit in String umwandeln, da die Bibliothek den Typ
  2. ableitet
  3. Sie können nicht-optionale Eigenschaften haben und die Bibliothek wird Ihnen sagen, welches genaue Feld falsch war
  4. Alle Schlüssel für das Modell sind in 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
  5. enthalten sind
Noobass 06.03.2017 19:19
quelle
2

Hier finden Sie einen Beispielcode für die Model-Klasse und die Analyse der JSON-Antwort ohne eine beliebige Bibliothek.

Modellklasse

%Vor%

Beispielcode zum Aufrufen von Web-Service API und Parsing.

%Vor%     
Ajumal 07.04.2015 09:20
quelle
0

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

jsoncafe.com

    
Meghs Dhameliya 13.02.2018 05:26
quelle
0

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.

    
Werner Altewischer 23.03.2018 10:04
quelle

Tags und Links