2017-01-14 4 views
0

Ich habe eine seltsame Frage.Konvertieren Zeichenfolge Darstellung von JSON zu JSON

Ich habe eine Zeichenfolge mit dem Namen string, {"reply": "", "emoji": ":)", "time": "3"}

Jetzt offensichtlich, weil dies ein String ist, kann ich es nicht mit string["time"] zugreifen.

Ich muss es in ein Array (oder JSON) konvertieren, aber ich kann nicht herausfinden, wie.

Ich versuchte SwiftyJSON

let b = JSON(string) 

print(b["comment"]) #"null\n" 

Ich versuchte JSONSerialisation, aber das scheinbar auch gescheitert.

Jede Hilfe wäre willkommen.

Ich benutze Alamofire, um das JSON abzurufen, wenn ich .responseString verwende, enthält es alles, aber .responseJSON ist leer, und ich weiß nicht warum.

+1

JSON ist der Name eines Datenserialisierungsformats. Es ist per Definition eine String-Darstellung von Daten. Sie können "eine Zeichenfolgendarstellung von JSON nicht mehr in JSON konvertieren", als Sie eine Zeichenfolgendarstellung von CSV in CSV oder eine Zeichenfolgendarstellung von ASCII in ASCII konvertieren können. Sie sind ein und dasselbe. Wenn Sie JSON deserialisieren (parsen), verfügen Sie nicht mehr über JSON. Es klingt wie das, was Sie eigentlich wollen, ist ein JSON in ein Swift-Objekt zu deserialisieren. –

+0

"Ich muss es in ein Array (oder JSON) konvertieren" Die Zeichenfolge, die Sie haben, würde eigentlich nur als ein Wörterbuchobjekt funktionieren. –

Antwort

0

Hier ist eine schnelle und unsaubere Lösung mit JSONSerialization, die Ihren Einstieg sollten:

let string = "{\"reply\": \"\", \"emoji\": \":)\", \"time\": \"3\"}" 
let json = try! JSONSerialization.jsonObject(with: string.data(using: .utf8)!, options: .allowFragments) as! [String: String] 
print(json["time"]) 

Ihr tatsächlicher Code sollte mehr Fehlerprüfung haben, natürlich.