首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回null的NSJSONSerialization

返回null的NSJSONSerialization
EN

Stack Overflow用户
提问于 2012-09-14 18:24:30
回答 2查看 4.9K关注 0票数 1

我正在编写一个应用程序,这是应该从远程web服务读取JSON数据。URL的格式为"something.action“。

我使用dataWithContentsofURL从服务下载JSOn数据,我看到这个函数确实返回了一些数据。

使用此数据,我调用函数NSJSONSeraiization,但此函数的响应为null。

基本上,我使用的是http://www.raywenderlich.com/5492/working-with-json-in-ios-5上提供的代码。唯一的区别是我是从远程服务器获取数据,而我的URL是"something.action“格式。

我不知道这里出了什么问题。

EN

回答 2

Stack Overflow用户

发布于 2012-09-14 21:21:24

检查像http://jsonviewer.stack.hu/这样的JSON查看器,确认返回的JSON是否正确。

对从接收到的NSData获取的字符串执行NSLog,并在查看器中使用它。如果有任何问题,您就知道对象未序列化的原因。

票数 1
EN

Stack Overflow用户

发布于 2012-09-14 22:02:47

检查您得到的响应是否为格式正确的JSON文件,如果是,请检查其类:

代码语言:javascript
复制
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....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12422626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档