Ich habe das nächste Wörterbuch erstellt:
var postJSON = [ids[0]:answersArray[0], ids[1]:answersArray[1], ids[2]:answersArray[2]] as Dictionary
und ich bekomme:
[2: B, 1: A, 3: C]
Wie kann ich es in JSON konvertieren?
json
swift
serialization
Orkhan Alizade
quelle
quelle
NSJSONSerialization
Antworten:
Swift 3.0
Mit Swift 3 haben sich der Name
NSJSONSerialization
und seine Methoden gemäß den Swift API Design Guidelines geändert .Swift 2.x.
Schnell 1
quelle
[2: A, 1: A, 3: A]
. Aber was ist mit geschweiften Klammern?{"result":[{"body":"Question 3"}] }
dataWithJSONObject
würde die "geschweiften Klammern" (dh die geschweiften Klammern) als Teil des resultierendenNSData
Objekts erzeugen .Sie machen eine falsche Annahme. Nur weil der Debugger / Playground Ihr Wörterbuch in eckigen Klammern anzeigt (so zeigt Cocoa Wörterbücher an), bedeutet dies nicht, dass die JSON-Ausgabe so formatiert ist.
Hier ist ein Beispielcode, der ein Wörterbuch mit Zeichenfolgen in JSON konvertiert:
Swift 3 Version:
Um das Obige im "hübsch gedruckten" Format anzuzeigen, ändern Sie die Optionszeile in:
Oder in der Swift 2-Syntax:
Die Ausgabe davon ist
Oder in hübschem Format:
Das Wörterbuch ist in der JSON-Ausgabe in geschweiften Klammern eingeschlossen, genau wie Sie es erwarten würden.
BEARBEITEN:
In der Swift 3/4 Syntax sieht der obige Code folgendermaßen aus:
quelle
Swift 5:
Beachten Sie, dass Schlüssel und Werte implementiert werden müssen
Codable
. Strings, Ints und Doubles (und mehr) sind bereits vorhandenCodable
. Siehe Kodieren und Dekodieren von benutzerdefinierten Typen .quelle
Meine Antwort auf Ihre Frage ist unten
Antwort ist
quelle
Swift 4
Dictionary
Erweiterung.quelle
encoding: .ascii
in der öffentlichen Erweiterung zu verwenden..utf8
wird viel sicherer sein!Manchmal ist es notwendig, die Antwort des Servers für Debugging-Zwecke auszudrucken. Hier ist eine Funktion, die ich benutze:
Anwendungsbeispiel:
quelle
Swift 3 :
quelle
Die Antwort auf Ihre Frage finden Sie unten:
Swift 2.1
quelle
Hier ist eine einfache Erweiterung, um dies zu tun:
https://gist.github.com/stevenojo/0cb8afcba721838b8dcb115b846727c3
quelle
quelle