JSON-Codierung mit umgekehrten Schrägstrichen

8

Ich benutze Alamofire und SwiftyJSOn, um die JSON-Ausgabe zu analysieren. Es funktioniert sehr gut, aber einige Websites geben JSON mit Escape-Ausgabe. Ich benutze Alamofire wie unten

%Vor%

Site gibt mir ein JSON-Ergebnis mit einer Escape-Zeichenfolge, so dass SwiftyJSON es nicht dekodieren kann. Wie kann ich unter

konvertieren? %Vor%

zu etwas wie

%Vor%     
Meanteacher 23.03.2015, 16:00
quelle

5 Antworten

3
%Vor%

Ich denke, du musst zweimal dekodieren: das Wrapping-Objekt und seinen Inhalt.

    
Moritz 23.03.2015, 16:42
quelle
5

@ericd Kommentare haben mir geholfen, das Problem zu lösen. Ich habe seine Antwort für diese Frage angenommen. Da ich Alamofire für den asynchronen Betrieb und SwiftyJSON verwende, konnte ich seinen Code nicht verwenden. Hier ist der Code mit Alamofire und SwiftyJSON.

%Vor%     
Meanteacher 24.03.2015 10:19
quelle
2

Viele Menschen haben Probleme zu unterscheiden zwischen dem, was sie bekommen und was ihr System druckt. Als erstes müssen Sie herausfinden, was genau Sie erhalten und ob diese Escape-Zeichen nur ein Artefakt von Ihnen sind.

Wenn Sie das tatsächlich erhalten, hat der Server Ihnen ein Wörterbuch mit einem einzigen Schlüssel "d" und einer Zeichenfolge gesendet, und die Zeichenfolge enthält serialisierte Daten. Konvertieren Sie in diesem Fall die Zeichenfolge in NSData, und schieben Sie sie in NSJSONSerialization, wodurch sie in das gewünschte Wörterbuch umgewandelt wird. Dies ist eine ziemlich dumme Art, JSON-Daten zu übertragen, aber es passiert.

    
gnasher729 23.03.2015 16:31
quelle
0

Ich verwende eine benutzerdefinierte Funktion, um diese Arbeit zu erledigen:

%Vor%

Ich hoffe es hilft;)

    
ikocel1 23.03.2015 16:25
quelle
0

Ich habe viel zu lange versucht, das gleiche Problem herauszufinden. Hier ist, wie ich es gelöst habe.

Ich habe einen Netzwerkmanager, der beim Aufruf eine Antwort von [Any] zurückgibt?

Ich durchlaufe jeden Datensatz und wandle ihn in JSON um, aber in diesem Fall erkennt er die inhärente Struktur des Wörterbuchs nicht.

Also pflücke ich den rawString und benutze dann Parse. Dies erkennt das Wörterbuch.

Von dort sollten Sie in der Lage sein, es so zu benutzen, wie Sie es tun würden. In meinem Beispiel übergebe ich die Daten an ein Datenmodell (MyApi),

%Vor%     
mobilecat 09.07.2017 21:40
quelle

Tags und Links