最近开始搞ios开发,需要解析json文件,而且还是数组,用ios自带的NSJSONSerialization解析了第一层,发现再往下解析是,已经不行了,经过调试发现,解析一次后,ios自动把json文件的“:”换成了“=”,还加了一些“\n”,还有空格,经过努力都改正之后都不行,实在没办法了自己就硬着头皮解决了一下,希望给大家分享一下。
NSMutableString *strFile=[[NSMutableString alloc] initWithContentsOfFile:FILE_PATH encoding:NSUTF8StringEncoding error:nil];
    NSMutableArray *arrayJson=[NSMutableArray arrayWithCapacity:42];
    NSRange leftRange;
    NSRange rightRange;
    leftRange=[strFile rangeOfString:@"["];
    leftRange.length=leftRange.location+1;
    leftRange.location=0;
    [strFile deleteCharactersInRange:leftRange];
    rightRange=[strFile rangeOfString:@"]"];
    rightRange.length=[strFile length]-rightRange.location;
    [strFile deleteCharactersInRange:rightRange];
   // NSLog(@"%@",strFile);
    while(1)
    {
        NSString *tempString;
        NSDictionary *tempDictionary;
        rightRange=[strFile rangeOfString:@"}"];
        tempString=[strFile substringWithRange:NSMakeRange(0, rightRange.location+1)];
        NSData *tempData=[tempString dataUsingEncoding:NSUTF8StringEncoding];
        tempDictionary=[NSJSONSerialization JSONObjectWithData:tempData options:kNilOptions error:nil];
        [arrayJson addObject:tempDictionary];
        if([tempString isEqualToString:strFile])
            break;
        [strFile deleteCharactersInRange:NSMakeRange(0, rightRange.location+2)];
        
    }

解决方案 »

  1.   

    各种库,sbjson,jsontouch,jsonkit,系统库等等
      

  2.   

    解析过n层的,用NSJSONSerialization和JSONKIT都没有遇到过问题。楼主把json贴出来我试试看
      

  3.   

    sbjson 挺方便
      

  4.   

    NSJSONSerialization好使
      

  5.   

    json c++够用了
      

  6.   

    JasonKit效率很高~
      

  7.   

    NSMutableArray *tableArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
      

  8.   

    用AFNetworking, AFJSONRequestSerializer. HTTP请求会将返回的结果解析成Dictionary和Array.
      

  9.   

    NSJSONSerialization    NSMutableArray   DIctionary  基本就这几个就可以处理所有问题了