2

Mac アプリでユーザーNSJSONSerializationを使おうとしていますが、うまくいきません。UserTimeline を読み込もうとしていて、最後のツイートのテキストを表示するだけです。それだけですが、できません適切な使用方法を見つけたようです。私が使用しようとしたAPI:

http://api.twitter.com/1/statuses/user_timeline.json?screen_name=AlexTrott_

http://twitter.com/statuses/user_timeline/AlexTrott_.json

しかし、どちらも見たことがありません。これが私が使用しようとしてきた方法NSJSONSerializationです:

NSString *tweets = [NSURL URLWithString:@"http://twitter.com/statuses/user_timeline/AlexTrott_.json"];
    NSData *jsonData = [tweets dataUsingEncoding:NSUTF8StringEncoding];
    NSError *e = nil;
    NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&e];
    NSLog(@"%@", json);

それは、ロードされているかどうかを確認するために使用してきたものですが、失敗しています。

私もこの方法を試してみましたhttp://www.raywenderlich.com/5492/working-with-json-in-ios-5しかし、それはiOS専用であり、どうやってそれを手に入れるのかわかりませんMac で動作します。

Mac での使用方法に関するリンクはNSJSONSerialization素晴らしいでしょう。また、ヘルプも大きな感謝になるでしょう。Apple 開発者フォーラムで助けを得ようとしましたが、うまくいきませんでした。

4

2 に答える 2

2
NSURL *tweets = [NSURL URLWithString:@"http://twitter.com/statuses/user_timeline/AlexTrott_.json"];
    //NSData *jsonData = [tweets dataUsingEncoding:NSUTF8StringEncoding];
     //NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&e];
NSData *jsonData=[NSData dataWithContentsOfURL:tweets];
NSError *e = nil;

   id yourJsonData=[NSJSONSerialization JSONObjectWithData:jsonData options:
               NSJSONReadingMutableContainers error:&error];
NSLog("%@",yourJsonData );//you must get a json object here

//let's assume you need to get the key kalled user_name from your JSON Response

NSDictionary *theJson=[yourJsonData objectForKey:@"user_name"];

for(NSMutableArray *usernames in theJson){

// do something with usernames from your object
}
于 2012-02-26T14:46:13.563 に答える
0

私のアプリケーションも彼の最後のツイートを受け取ります。これらのリクエスト(1時間あたり350)でサーバーへの制限を考慮する必要があります。この制限を超えると、nsdataにnsarrayがなくなり、nsdictionaryになります。これは、間違いなく考慮されるエラーと要求を記述します。私はそれをこのようにしました:

NSError* error = nil;

id responseBody = [NSJSONSerialization JSONObjectWithData:data 
                                                  options:NSJSONReadingMutableContainers
                                                    error:&error];

if (error) {

    [[NSAlert alertWithError:error] runModal];
} 

if ([responseBody respondsToSelector:@selector(objectAtIndex:)]) {

    else { 

        if ([responseBody count]) {

            NSString* currentStatus = [[responseBody objectAtIndex:0] objectForKey:@"text"]; //now you can do smth with your status))
        } 
        else {

            NSLog(@"You have not tweetted yet!");
        }
    } 
} 
else if([responseBody respondsToSelector:@selector(objectForKey:)]) {

    NSString* error = [responseBody objectForKey:@"error"];
    NSLog(@"CURRENT STATUS ERROR => %@", error);        
}
于 2012-03-29T10:10:28.117 に答える