2013年7月31日水曜日

JSON(NSJSONSerialization)

Objective-CでJSONを使いたかったので、少し勉強してみました。


NSDictionary *jsonParser = [NSJSONSerialization JSONObjectWithData:WebApiから取得した文字列のデータ型 options:NSJSONReadingAllowFragments error:nil];


こんな感じで、Dictionaryに格納したら、後はDictionaryをガンガン使っていけばいいだけです。

■例

{"resulr":"true","item_list":{"item_1":"apple","item_2":"banana","item_3":"melon"}}

こんな、文字列をWebから貰ったとします。。


    //文字列型をデータ型に型変更
    NSData       *data = [string dataUsingEncoding:NSUTF8StringEncoding];

    //ディクショナリに入れる
    NSDictionary *jsonParser = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
  
    //resultを取得
    NSDictionary *next = [jsonParser objectForKey:@"result"];
    //LOG
    NSLog(@"%@", [jsonParser objectForKey:@"result"]);
    
    //深めの階層も大丈夫!!
    NSDictionary *country = [jsonParser objectForKey:@"item_list"];
    NSLog(@"%@", [jsonParser objectForKey:@"item_list"]);
    
    //取得したい値を取得
    NSDictionary *item = [country objectForKey:@"item_1"];
    NSLog(@"%@", [country objectForKey:@"item_1"]);



■結果


2013-07-31 01:59:01.046 jsontest[678:c07] {"result":"true","item_list":{"item_1":"apple","item_2":"banana","item_3":"melon"}}
2013-07-31 01:59:01.048 jsontest[678:c07] true
2013-07-31 01:59:01.048 jsontest[678:c07] {
    "item_1" = apple;
    "item_2" = banana;
    "item_3" = melon;
}
2013-07-31 01:59:01.048 hidouki[678:c07] apple


こんな感じになりました。
そもそもDictionary型をちゃんと理解していないので、
こんな使い方でいいのかわかりませんが。。。。
とりあえずは、APIの戻り値をさばけました。。

0 件のコメント:

コメントを投稿