8

NSData* jsonDataは、JSON データを含む http 応答です。

NSString* jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"jsonString: %@", jsonString);

私は結果を得ました:

{ "result": "\u8aaa" }

「\ uxxxx」のようなユニコード文字列ではなく、データを正しい文字列にエンコードする適切な方法は何ですか?

4

2 に答える 2

19

JSONデータを変換する場合

{ "result" : "\u8aaa" }

NSDictionary(例: を使用して)NSJSONSerializationに変換し、辞書を印刷します。

NSError *error;
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
NSLog(@"%@", jsonDict);

その後、出力が得られます

{
    result = "\U8aaa";
}

その理由は、 のdescriptionメソッドがNSDictionaryすべての非 ASCII 文字に対して "\Unnnn" エスケープ シーケンスを使用するためです。しかし、それはコンソールに表示されるだけで、辞書は正しいです!

キーの値を出力する場合

NSLog(@"%@", [jsonDict objectForKey:@"result"]);

次に、期待される出力が得られます

于 2013-06-27T09:55:33.813 に答える
0
于 2013-06-27T09:39:51.893 に答える