首页 > Web开发 > 详细

json解析 本地文件和网上文件(通过接口)

时间:2015-08-17 23:49:31      阅读:487      评论:0      收藏:0      [点我收藏+]

json解析

对本地文件解析

NSString *path =[[NSBundle mainBundle] pathForResource:@“movielist” ofType:@“txt”];

// 第二个参数,制定一个容器来接收解析后的数据

NSMutableDictionary *dic =[NSJSONSerialization JSONObjectWithData:data option:NSJSONReadingMutableContainers error:nil];

NSMutableArray *movieArr =[NSMutableArray array];
    for (NSMutableDictionary *temp in dic[@"result"]) {
        Movie *movie =[[Movie alloc] init];
        [movie setValuesForKeysWithDictionary:temp];
        [movieArr addObject:movie];
        [movie release];
    }

对网上文件的解析

原代码

NSString *strURL =@"http://api.map.baidu.com/place/v2/search?query=银行&region=大连&output=json&ak=6E823f587c95f0148c19993539b99295";
一个正常的URL地址是不允许有中文的,只能有数字, 26个英文字母的大小写,和一些特殊的符号,比如 &,%等,如果遇到带中文的URL,首先不它进行编码

原代码:

NSString *strEncode= [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

接下来,URL符合要求之后,就开始进行网络请求,网络请求分为三步

1.根据已经编好的URL,创建一个NSURL

NSURL *url =[NSURL URLWithString:strEncode];

2.发送一个请求

原代码:

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

3.返回我们要的数据,一个NSData对象

三个参数:第一个参数是刚刚创建的请求,第二个是返回的一个响应,第三个是错误信息

原代码

 NSURLResponse *response = nil;
    NSError *error =nil;
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

对返回回来的数据, data进行json解析

把所有的银行名都打印出来
原代码:

NSMutableDictionary *dic =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    for (NSDictionary *dic1 in dic[@"results"]) {
        NSLog(@"%@",dic1[@"name"]);
    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

json解析 本地文件和网上文件(通过接口)

原文:http://blog.csdn.net/mltianya/article/details/47731907

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!