iOS5JSON機能を使用してWebからデータをロードします。私の目標は、いくつかのTwitterデータを取得することです-データはWeb経由でフィルタリングされ、次のURL経由で取得します:http: //botpwn.org/ios/getfollowers.json?uid = 63964843
それは機能していて、問題はありませんが、問題はアプリのデータを解析することから始まります。
ここにデータをロードします
dispatch_async(kBgQueue, ^{
NSData* data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://botpwn.org/ios/getfollowers.json?uid=%@", my_uid]]];
[self performSelectorOnMainThread:@selector(fetchedData:)
withObject:data waitUntilDone:YES];
});
-(void)fetchedData:(NSData *)responseData {
NSError* error;
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData:responseData
options:kNilOptions
error:&error];
latestFollower = [json objectForKey:@"followers"]; //2
for (int i = 0; i < [latestFollower count]; i++){
[temp addObject:[latestFollower objectAtIndex:i]];
}
if (latestFollower == nil || latestFollower.count == 0){
NSLog(@"No followers");
}
}
そして今、私は常に空のlatestFollower配列を持っているという答えを受け取ります-そして問題は、Twitterユーザーの一部の名前(スクリーン名ではない)に特別な文字が含まれていて、iOSがそれを解析できないことです。
解決策を検索しましたが(phpヘッダーをutf8などに設定)、何も役に立ちません。
多分あなたはそれを正しく解析する方法を知っているかもしれません、あるいは多分私は何か間違ったことをしているのに私はそれを理解していません。
編集:自分で修正しました-最後にツール(http://jsonlint.com/)を使用して、json出力にエラーがあるかどうかを確認しました。エラーはありました。あなたのアイデアをありがとう!:)