1. ホーム
  2. ios

[解決済み] JSON文字列をNSDictionaryにデシリアライズするにはどうすればよいですか?(iOS 5+の場合)

2022-04-27 16:05:56

質問

iOS 5のアプリで NSString にはJSON文字列が含まれています。そのJSON文字列表現をデシリアライズして、ネイティブの NSDictionary オブジェクトを作成します。

 "{\"password\" : \"1234\",  \"user\" : \"andreas\"}"

次のような方法を試してみました。

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:@"{\"2\":\"3\"}"
                                options:NSJSONReadingMutableContainers
                                  error:&e];  

しかし、それはランタイムエラーを投げます。何が間違っているのでしょうか?

-[__NSCFConstantString bytes]: unrecognized selector sent to instance 0x1372c 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[__NSCFConstantString bytes]: unrecognized selector sent to instance 0x1372c'

解決方法は?

を渡しているようです。 NSString パラメータを渡すべきところ NSData パラメータを指定します。

NSError *jsonError;
NSData *objectData = [@"{\"2\":\"3\"}" dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData
                                      options:NSJSONReadingMutableContainers 
                                        error:&jsonError];