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"];



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

android 网络请求+json解析 最优分析

最近在项目中使用到了网络请求,网页数据以 json的方式返回,所以也避免不了json解析。...
  • lzw136296634
  • lzw136296634
  • 2017年03月30日 20:52
  • 1482

iOS 网络编程 (四)JSON解析

JSON基础 JSON全称是JavaScript Object Notation,它是一种轻量级的数据交换格式。JSON数据格式既适合人进行读写,也适合计算机本身解析和生成。早期,JSON是JavaS...
  • VNanyesheshou
  • VNanyesheshou
  • 2016年09月09日 21:10
  • 2103

网络编程-json数据的解析

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

Android网络编程之JSON解析

1.JSON的概念 JSON,即JavaScript Object Notation的缩写,是一种轻量级的数据交换格式。 具有如下特点: (1)易于人阅读和编写。 (2)易于机器解析和生成(...
  • qq244570672
  • qq244570672
  • 2015年09月08日 22:10
  • 559

Android网络之数据解析----使用Google Gson解析Json数据

一、Json数据的介绍 ...
  • u014360817
  • u014360817
  • 2015年03月09日 15:05
  • 1152

iOS 网络解析 -- 简单的JSON解析(包含AFNetworking、MJExtension的简单实用)

第一次写博客,写的不好或者有错的地方希望大家可以说出来,一起学习
  • u012121216
  • u012121216
  • 2015年10月11日 20:23
  • 1220

cocos2dx 3.0 联网方法和JSON数据解析

因为在项目开发的时候,总是涉
  • sg619262284
  • sg619262284
  • 2014年08月08日 15:53
  • 923

xUtils和FastJson获取和解析网络数据

FastJson解析Json数据
  • github_36731706
  • github_36731706
  • 2017年01月09日 10:44
  • 374

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

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

Android使用HttpURLConnection请求网络返回JSON数据并解析

要求:制作一个类似于今日头条的客户端,首页显示10条新闻。思路:使用Android的HttpURLConnection类请求一个URL,返回JSON数据,并使用自带的JSONArray类进行解析。方法...
  • mayuko2012
  • mayuko2012
  • 2017年06月16日 19:51
  • 729
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS----解析网络json
举报原因:
原因补充:

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