0

YouTube API から XML ではなく JSON 形式でデータを読み込みたい。これは私の情報源です:

- (void) getFavoriteList{


    NSString* rawUrl = CONNECTION_GET_FAVORITE_LIST;
    NSURL *url = [NSURL URLWithString:rawUrl];
    ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url];

   //create request header
    AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
    [request addRequestHeader:@"Authorization" value:[@" Bearer "  stringByAppendingString:[appDelegate userInfo].accessTokenYoutube ]];
    [request addRequestHeader:@"X-GData-Key" value:[NSString stringWithFormat:@"key=%@",YOUTUBE_DEVELOPER_KEY]];
    [request addRequestHeader:@"alt" value:@"json"];
    [request addRequestHeader:@"v" value:@"2"];
    [request setRequestMethod:@"GET"];
    [request startAsynchronous];

    //register callback blocks.
    [request setCompletionBlock:^{
        NSString* respondMessage = [request responseString];
        ParseData *parseData = [[ParseData alloc] init];
        NSMutableArray *arrPlaylistVideos = [parseData allocVideo:respondMessage];
        [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_GET_FAVORITE_VIDEOS_SUCCESS object:arrPlaylistVideos];
    }];
    [request setFailedBlock:^{
        NSString* respondMessage = [[request error] localizedDescription];
        [[NSNotificationCenter defaultCenter]postNotificationName:NOTIFICATION_GET_FAVORITE_VIDEOS_FAILED object:respondMessage];
    }];

    [request release];
}

alt = json を設定しましたが、Youtube は常に xml データを返します。ここで何か間違いをしましたか?

注: Gdata-ObjectiveC-Client を使用する必要があるとは言わないでください。非常に複雑で、私はそれを使うのが嫌いです。

ありがとう。

4

2 に答える 2

2

リクエスト ヘッダーではなく、リクエスト URL にクエリ文字列として alt=json を追加する必要があると思います。

于 2013-01-04T04:11:13.393 に答える
-1

NSXMLParser で xml を解析できます。または、XML から JSON へのライブラリを簡単に見つけることができます。この投稿が役立つと思います。

于 2013-01-04T03:35:52.630 に答える