IOS JSON数据解析

//获取文件中的json数据
//JsonData 是文件名
//json 是文件后缀民
NSString *path=[[NSBundle mainBundle] pathForResource:@"JsonData" ofType:@"json"];
NSData *data=[[NSData alloc] initWithContentsOfFile:path];
//解析成字典
NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

解析成对象放到数组中

if ([dic isKindOfClass:[NSDictionary class]]) {
    //开始解析数据
    _tableArray=[[NSMutableArray alloc]init];
    NSArray *programmersArray=[dic objectForKey:@"programmers"];
    //遍历数组对象
    for (int i=0; i<programmersArray.count; i++) {
        NSDictionary *authorDic=[programmersArray objectAtIndex:i];
        NSString *firstName=[authorDic objectForKey:@"firstName"];
        NSString *lastName=[authorDic objectForKey:@"lastName"];
        NSString *email=[authorDic objectForKey:@"email"];
        Author *author=[[Author alloc]init];
        author.firstName=firstName;
        author.lastName=lastName;
        author.email=email;
        [_tableArray addObject:author];
    }
    NSArray *musiciansArray=[dic objectForKey:@"programmers"];
    //遍历数组对象
    for (int i=0; i<musiciansArray.count; i++) {
        NSDictionary *authorDic=[musiciansArray objectAtIndex:i];
        NSString *firstName=[authorDic objectForKey:@"firstName"];
        NSString *lastName=[authorDic objectForKey:@"lastName"];
        NSString *email=[authorDic objectForKey:@"email"];
        Author *author=[[Author alloc]init];
        author.firstName=firstName;
        author.lastName=lastName;
        author.email=email;
        [_tableArray addObject:author];
    }
    
    
    //解析根数据
    NSArray *authorsArray=[dic objectForKey:@"authors"];
    //遍历数组对象
    for (int i=0; i<authorsArray.count; i++) {
        NSDictionary *authorDic=[authorsArray objectAtIndex:i];
        NSString *firstName=[authorDic objectForKey:@"firstName"];
        NSString *lastName=[authorDic objectForKey:@"lastName"];
        NSString *email=[authorDic objectForKey:@"email"];
        Author *author=[[Author alloc]init];
        author.firstName=firstName;
        author.lastName=lastName;
        author.email=email;
        [_tableArray addObject:author];
    }
    
}

Author 对象头文件

@interface Author : NSObject
@property (nonatomic,copy) NSString *firstName;
@property (nonatomic,copy) NSString *lastName;
@property (nonatomic,copy) NSString *email;
-(NSString *) getName;
@end

Author .m文件

@implementation Author
-(NSString *)getName{
return [NSString stringWithFormat:@"%@ %@",_lastName,_firstName];
}
@end

模版son
{"programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ☞2016年w3cschool全网技术教程离线下载 ☞查看完整手册《JavaScript中的json操作》 ☞学技...
    4b13737bb150阅读 9,659评论 1 1
  • json入门基础教程 在异步应用程序中发送和接收信息时,可以选择以纯文本和XML作为数据格式。掌握Ajax的这一期...
    追逐黄昏的太阳阅读 628评论 0 1
  • 1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch...
    阳光的大男孩儿阅读 5,042评论 0 13
  • 1、Objective-C的类可以多重继承么?可以采用多个协议么?答:不可以多重继承,可以采用多个协议。2、#im...
    亦晴工作室阅读 642评论 0 3
  • 今天有闺蜜在工作上遇到小的问题,我想就这个讲讲工作方向这件事。 【工作一年了,起初我一直觉得自己就只是能做好而已,...
    刘小腹阅读 334评论 0 0