同じ NSDictionary オブジェクトを NSData に変換し、次に NSJSONSerialization と SBJsonWriter を使用して NSString を数回変換しようとしましたが、異なる文字列が得られることもありました。ヌルでも。それはかなり奇妙で、私は理由を見つけることができません。=( JSONKit と YAJL にはこのような問題はありません。以下は私のテスト コードです。
for (int i = 0; i < 5; i++) {
NSDictionary *d = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];
NSData *data = [NSJSONSerialization dataWithJSONObject:d options:0 error:nil];
NSLog(@"%@", [NSString stringWithUTF8String:data.bytes]);
}
コンソール出力は...
2012-04-25 01:35:33.113 Test[19347:c07] {"key":"value"}
2012-04-25 01:35:33.114 Test[19347:c07] (null)
2012-04-25 01:35:33.114 Test[19347:c07] {"key":"value"}
2012-04-25 01:35:33.114 Test[19347:c07] {"key":"value"}
2012-04-25 01:35:33.115 Test[19347:c07] (null)
テストコードを実行するたびに出力が変化します。データのバイトサイズは同じですが、UTF8 に変換した文字列の長さが異なります。