NSJSONSerializationの簡単な使い方
NSJSONSerialization のリファレンスを見るとわかるけどクラスメソッドが全部で5つあるだけ!
JSON オブジェクトを作る方法が2つ、JSON データを作る方法が2つ。それぞれストリームおよびデータを使う方法がある。
そして最後の1つは JSON オブジェクトを JSON データに変換できるかどうかを確認してくれる。
昨日のコードを NSJSONSerialization で書き直すとこんな感じ。
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://192.168.11.3/jsonReplySample.json"]]; NSData *json_data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSError *error=nil; NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:json_data options:NSJSONReadingAllowFragments error:&error]; NSLog(@"jsonObject = %@", [jsonObject description]);
JSON データを JSON オブジェクトにするので JSONObjectwithData:options:error: を使ってる。
JSONObjectwithData:options:error: はその名の通り NSData から直接 JSON のオブジェクトを作ってくれる。
option には次の3つを指定できる。
- NSJSONReadingMutableContainers
- NSJSONReadingMutableLeaves
- NSJSONReadingAllowFragments
今回は出来上がった JSON のオブジェクトに何かを付け加えたり削除したりはしないので、Mutable でない NSJSONReadingAllowFragments で OK。
超簡単!
というわけで、iOS 5 以降のサポートで良ければ NSJSONSerialization を使うのが、将来の iOS のバージョンアップなんかを考えた時には良いかな。