大都会办公室数据点以ISO-8859-1的形式发回数据,这不是NSJSONSerialization支持的数据格式之一。
为了使其工作,首先使用NSISOLatin1StringEncoding从URL内容创建一个字符串,然后使用NSUTF8编码创建要在NSJSONSerialization中使用的NSData。
下面的工作来创建相应的json对象
NSError *error;NSString *string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://datapoint.metoffice.gov.uk/public/data/val/wxfcs/all/json/sitelist?key=<YOUR_API_KEY"] encoding:NSISOLatin1StringEncoding error:&error];NSData *metOfficeData = [string dataUsingEncoding:NSUTF8StringEncoding];id jsonObject = [NSJSonSerialization JSONObjectWithdata:metOfficeData options:kNilOptions error:&error];if (error) { //Error handling} else { //use your json object NSDictionary *locations = [jsonObject objectForKey:@"Locations"]; NSArray *location = [locations objectForKey:@"Location"]; NSLog(@"Received %d locations from the DataPoint", [location count]);}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)