我正在编写一个应用程序,这是应该从远程web服务读取JSON数据。URL的格式为"something.action“。
我使用dataWithContentsofURL从服务下载JSOn数据,我看到这个函数确实返回了一些数据。
使用此数据,我调用函数NSJSONSeraiization,但此函数的响应为null。
基本上,我使用的是http://www.raywenderlich.com/5492/working-with-json-in-ios-5上提供的代码。唯一的区别是我是从远程服务器获取数据,而我的URL是"something.action“格式。
我不知道这里出了什么问题。
发布于 2012-09-14 21:21:24
检查像http://jsonviewer.stack.hu/这样的JSON查看器,确认返回的JSON是否正确。
对从接收到的NSData获取的字符串执行NSLog,并在查看器中使用它。如果有任何问题,您就知道对象未序列化的原因。
发布于 2012-09-14 22:02:47
检查您得到的响应是否为格式正确的JSON文件,如果是,请检查其类:
NSError *jsonError = nil;
NSJSONSerialization *myJSONObject = [NSJSONSerialization JSONObjectWithData:theNSDataObained options:NSJSONReadingMutableContainers error:&jsonError];
if(jsonError != nil){
NSLog(@"JSON Error: %@", jsonError);
return;
}
//An NSJSONSerialization object will either be an NSDictionary or
//an NSArray, figure out what it is:
NSLog(@"JSON class is: %@", [myJSONObject class]);
//if it's a NSDictionary:
if([myJSONObject isKindOfClass:[NSDictionary class]]){
NSDictionary *myJSONDictionary = (NSDictionary *) myJSONObject;
for(id key in myJSONDictionary){
id value = [myJSONDictionary valueForKey:key];
[value doStuff];
}
}
else //if it's a NSArray....https://stackoverflow.com/questions/12422626
复制相似问题