NSData to NSString mit JSON-Antwort

7

NSData * jsonData ist die HTTP-Antwort, die JSON-Daten enthält.

%Vor%

Ich habe das Ergebnis:

%Vor%

Was ist der richtige Weg, um die Daten in die richtige Zeichenfolge zu codieren, nicht Unicode-String wie "\ uxxxx"?

    
shiami 27.06.2013, 08:01
quelle

2 Antworten

19

Wenn Sie die JSON-Daten konvertieren

%Vor%

an NSDictionary (z. B. mit NSJSONSerialization ) und das Wörterbuch

drucken %Vor%

dann erhalten Sie die Ausgabe

%Vor%

Der Grund ist, dass die Methode description von NSDictionary "\ Unnnn" Escape-Sequenzen verwendet für alle Nicht-ASCII-Zeichen. Aber das ist nur für display in der Konsole, das Wörterbuch ist korrekt !

Wenn Sie den Wert der Taste

drucken %Vor%

dann erhalten Sie die erwartete Ausgabe

%Vor%     
Martin R 27.06.2013, 09:55
quelle
0

Ich verstehe nicht ganz, was das Problem ist. AFNetworking hat Ihnen ein gültiges JSON-Paket gegeben. Wenn Sie möchten, dass der obige Code das Zeichen anstelle der \u… Escape-Sequenz ausgibt, sollten Sie den Server, der Ihnen das Ergebnis liefert, dazu bringen, seine Ausgabe zu ändern. Aber das sollte nicht notwendig sein. Was Sie wahrscheinlich als nächstes tun möchten, ist es durch einen JSON-Deserializer zu laufen ...

%Vor%

... und Sie sollten das folgende Wörterbuch zurückbekommen: @{@"result":@"說"} . Beachten Sie, dass die result -Schlüssel eine Zeichenkette mit einem einzelnen Zeichen enthält, was ich vermute, was Sie wollen.

Übrigens: In Zukunft schlage ich vor, dass Sie die Ausgabe in Ihre Frage kopieren und einfügen, anstatt sie manuell zu transkribieren. Es wird mehrere unnötige Runden von Korrekturen und Verwirrung vermeiden.

    
Marcelo Cantos 27.06.2013 09:39
quelle

Tags und Links