忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

iOSにてOneDrive(SkyDrive)の動作確認2

わか

iOSでOneDriveからgetで取得したファイルリストをjsonパースしました。

LiveSDK-for-iOS 
- (void) liveOperationSucceeded:(LiveOperation *)operation
{
  if (operation.rawResult)
  {
       NSError *error = nil;    
    ⑴ NSData *jsonData = [operation.rawResult 
                                   dataUsingEncoding:NSUTF8StringEncoding];
    ⑵ NSDictionary *jsonResponse = [NSJSONSerialization 
                                       JSONObjectWithData:jsonData
                                       options:NSJSONReadingAllowFragments
                                       error:&error];
    ⑶ NSArray *array = [jsonResponse objectForKey:@"data"];
      for (NSDictionary *dic in array) {
          NSLog(@"name:%@", [dic objectForKey:@"name"]);
          NSLog(@"size:%@", [dic objectForKey:@"size"]);      
          NSLog(@"type:%@", [dic objectForKey:@"type"]);
          NSLog(@"updated_time:%@", [dic objectForKey:@"updated_time"]);
      }

  }
}


最初に取得したjsonデータを変換します。(NSString -> NSData)
次に「
NSJSONSerialization」で NSData -> NSDictionary に変換します。
dataキーを指定するとファイルリスト数分の配列が取得できます。あとは必要な値をキー指定するだけです。

OneDriveから取得できた文字コードはUTF8でした。他の文字コードも使用されるのかは調査中です。
jsonパースする際に、NSJSONSerialization(Apple)を使用するかJsonKit(オープンソース)を使用するか迷いましたが、NSJSONSerializationの方がパフォーマンスが良いとの情報がありましたので、
こちらを使用しました。
(取得するデータによってパフォーマンス結果は異なるようですが・・・)


拍手[0回]

PR