Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 解析json-达到最大深度_Iphone_Json_Nsarray_Sbjson - Fatal编程技术网

Iphone 解析json-达到最大深度

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

我想解析一篇reddit帖子的评论,上面有500多条评论。 例如,这个: json url是:

在am中使用SBJson来实现这一点。 当我尝试使用此代码获取NSArray时:
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解决了这个问题