1. ホーム
  2. ios

[解決済み] NSJSONSerializationの使用方法

2022-04-26 01:41:33

質問

JSON文字列(PHPの json_encode() のようなものです。

[{"id": "1", "name":"Aaa"}, {"id": "2", "name":"Bbb"}]

これをパースして、iPhoneアプリ用の何らかのデータ構造にしたいのです。一番良いのは辞書の配列で、配列の0番目の要素はキーが "id" => "1""name" => "Aaa" .

がどのようなものなのか理解できません。 NSJSONSerialization はデータを保存していますが。以下は、これまでの私のコードです。

NSError *e = nil;
NSDictionary *JSON = [NSJSONSerialization 
    JSONObjectWithData: data 
    options: NSJSONReadingMutableContainers 
    error: &e];

これは他のサイトで例として見ただけのものです。を読み取ることができるようになりました。 JSON オブジェクトの要素数を出力したりするのですが、いつも EXC_BAD_ACCESS .

を使用するにはどうすればよいのでしょうか? NSJSONSerialization を使用して、上記のJSONをパースし、私が言及したデータ構造に変換することができますか?

解決方法は?

ルート json オブジェクトは辞書ではなく、配列です。

[{"id": "1", "name":"Aaa"}, {"id": "2", "name":"Bbb"}]

これで対処の仕方が見えてくるかもしれませんね。

NSError *e = nil;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e];

if (!jsonArray) {
  NSLog(@"Error parsing JSON: %@", e);
} else {
   for(NSDictionary *item in jsonArray) {
      NSLog(@"Item: %@", item);
   }
}