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