我使用iOS 5 JSON功能从网上加载数据。 我的目标是获取一些推特数据 - 数据通过网络过滤,我通过以下网址获取: 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输出中是否有错误,是的 - 确实如此。谢谢你的想法! :)