Iphone 解析json-达到最大深度
我想解析一篇reddit帖子的评论,上面有500多条评论。 例如,这个: json url是: 在am中使用SBJson来实现这一点。 当我尝试使用此代码获取NSArray时:Iphone 解析json-达到最大深度,iphone,json,nsarray,sbjson,Iphone,Json,Nsarray,Sbjson,我想解析一篇reddit帖子的评论,上面有500多条评论。 例如,这个: json url是: 在am中使用SBJson来实现这一点。 当我尝试使用此代码获取NSArray时: NSString*response=[request responseString]; NSArray*responseArray=[responsejsonvalue] 我收到以下错误消息:-JSONValue失败。错误是:输入深度超过最大深度32 将深度更改为更高的数字(例如100)会使我的应用程序崩溃 如果redd
NSString*response=[request responseString];
NSArray*responseArray=[responsejsonvalue]代码>
我收到以下错误消息:-JSONValue失败。错误是:输入深度超过最大深度32
将深度更改为更高的数字(例如100)会使我的应用程序崩溃
如果reddit帖子只有20条评论,我会得到NSArray,并且可以成功地显示它们
获取NSArray需要做哪些更改?试试我的JSON解析器库,它没有这样的限制:
您尝试过苹果的JSON解析库吗?它起作用了
NSString *urlString = @"http://www.reddit.com/comments/xu11o.json";
NSURL *url = [NSURL URLWithString:urlString];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:
[NSURLRequest requestWithURL:url]
returningResponse:&response
error:&error];
id jsonObj = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
// Do something with jsonObj which is an array.
只需确保在发货前将下载代码切换为异步即可
致以最诚挚的问候。SBJsonParser的这一“限制”是一项安全功能,可以保护您免受假定的恶意JSON攻击。该限制可通过属性进行配置。正如您所发现的,默认值是32。您可以将其更改为所需的任何整数值,或者通过将其设置为0来关闭最大深度检查。我对sbjson也有同样的问题。将maxDepth(SBJsonParser.m)更改为128解决了这个问题