iOS----解析网络json

原创 2017年09月04日 14:14:38

一:当json以网址形式出现时:

(1)以前传统的解析json的方法:(代码存放位置是:在你需要解析的.m文件中)

    NSError *error;      

    //    加载一个NSURL对象

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"这里是你的json的网址"]];

    //    将请求的url数据放到NSData对象中

    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

    //    iOS5自带解析类NSJSONSerializationresponse中解析出数据放到字典中

    NSDictionary *Dic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];

    //    字典中存放的数据也是字典型,从它里面通过键值取值

    NSDictionary *Info = [Dic objectForKey:@“这里是你想要打印的json里边的某个值"];

    //    打印出字典所存储数据

  NSLog(@"%@",这里是你json想要打印出来的值);

(2)方法2:

 //    加载一个NSURL对象

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://freegeoip.net/json/"]];

 //    将请求的url数据放到NSData对象中

    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

 //    iOS5自带解析类NSJSONSerializationresponse中解析出数据放到字典中

    NSString *ipDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];

 //    weatherDic字典中存放的数据也是字典型,从它里面通过键值取值

    NSDictionary *ipInfo = [ipDic objectForKey:@"ip"];

    NSDictionary *ipInfo1=[ipDic objectForKey:@"country_code"];

    NSDictionary *ipInfo2=[ipDic objectForKey:@"country_code"];

 //    打印出weatherInfo字典所存储数据

    NSDictionary *newDic=[ipDic objectFromJSONString];

    NSLog(@"ipInfo字典里面的内容是--->%@",[newDic description]);

    NSLog(@"ipInfo字典里面的内容是--->%@",[ipInfo1 description]);

    NSLog(@"ipInfo字典里面的内容是--->%@",[ipDic objectForKey:@"country_code"]);



最近用的ios10上述方法已经过时,所以接下来的方法是新方法:
(1)方法一:

 // 获取默认 Session

    NSURLSession *session = [NSURLSession sharedSession];

 // 创建 URL

    NSURL *url = [NSURL URLWithString:@"http://freegeoip.net/json/"];

 // 创建任务 task

    NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

 // 获取数据后解析并输出

    NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

    NSLog(@"%@",[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]);

    NSDictionary *info=[dic objectForKey:@"ip"];

    NSLog(@"%@",[info description]);

    NSDictionary *info2=[dic objectForKey:@"city"];

    NSLog(@"%@",[info2 description]);

    }];

 // 启动任务

    [task resume];


(2)方法2:

NSString *URLTmp1 = @"http:ip.taobao.com/service/getIpInfo.php?ip=myip";

   NSString *URLTmp = [URLTmp1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

   NSData * resData = [NSData dataWithContentsOfURL:[NSURL URLWithString:URLTmp]];

    

   if (resData) {

       

        NSError  *err;

       

        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:resData

                             

                                                           options:NSJSONReadingMutableContainers

                            

                                                            error:&err];

        NSLog(@"dic = %@", dic);

       

        NSDictionary *datadic = [[NSDictionary alloc] initWithDictionary:dic[@"data"]];

       NSString *countryid = datadic[@"country_id"];



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/W_C_X/article/details/77836926

网络编程-json数据的解析

网络编程—json数据的手动解析与第三方jar包的使用,网络接口编程
  • coder_bai
  • coder_bai
  • 2016-08-09 20:40:53
  • 630

HTTP 网络访问/JSON 解析

HTTP概念: 超文本传输协议,互联网上应用最为广泛的一种网络协议。HTTP请求步骤: 1. 建立TCP连接 2. 浏览器向Web服务器发送请求命令 3. 浏览器发送请求头信息 4. Web...
  • yuxin1100
  • yuxin1100
  • 2016-07-23 16:43:49
  • 806

Android网络数据JSON解析使用总结

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。...
  • wenzhi20102321
  • wenzhi20102321
  • 2016-11-16 13:50:51
  • 5089

iOS开发网络篇 一一 JSON解析

1. 什么是JSON? 1). JSON是一种轻量级的数据格式,一般用于数据交互. 2). 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) 3). JSON的格式很像OC...
  • m0_37989980
  • m0_37989980
  • 2017-12-17 13:53:43
  • 726

一个json解析的Demo,解析后的数据展示到ListView中

  • 2012年05月11日 06:52
  • 338KB
  • 下载

使用Gson解析json并且加载json中的网络图片

使用Gson解析json并且加载json中的网络图片 本人刚入行安卓大半年,虽说经验很少,但是我还是想把自己平时做项目过程中的一些东西记录下来,一来大家互相学习,二来自己也能看到自己进步的脚印。 好...
  • liu540885284
  • liu540885284
  • 2015-04-13 19:25:02
  • 1816

网络获取Json文件解析范例

网络获取json文件,并使用Gson进行解析的方法
  • kd953163660
  • kd953163660
  • 2016-05-15 21:25:43
  • 1001

swift:使用NSJSONSerialization和SwiftyJSON两种方法解析网络返回的json格式数据

在我的博客(下面)两个实验的基础上,使用NSJSONSerialization和SwiftyJSON两种方法解析网络返回的json格式数据,参照视频实现的"天气信息"小实验 1 创建工程 2 在...
  • qj918
  • qj918
  • 2016-03-09 15:55:06
  • 2418

Unity中从网络获取JSON

参考地址 http://www.360doc.com/content/13/0117/11/10941785_260686840.shtml 将LitJson.dll放在assert下的plugi...
  • xuzkbd
  • xuzkbd
  • 2018-01-05 14:50:36
  • 59

Android异步加载访问网络图片-解析json

来自:http://www.imooc.com/video/7871 推荐大家去学习这个视频,讲解的很不错。 慕课网提供了一个json网址可以用来学习:http://www.imooc.com/a...
  • hnyzwtf
  • hnyzwtf
  • 2016-01-23 23:05:26
  • 4831
收藏助手
不良信息举报
您举报文章:iOS----解析网络json
举报原因:
原因补充:

(最多只允许输入30个字)