当前位置:首页 > 开发 > 移动开发 > 正文

JSON解析

发表于: 2013-12-10   作者:chenyue1   来源:转载   浏览次数:
摘要: JSON解析1. 利用JSONKit第三方库解析json文件1) 下载JSONKit  https://github.com/johnezang/JSONKit 2) 将JSONKit.h和JSONKit.m copy到我们应用的工程中3) 注意是不是ARC        - (void)parseUseJSONKit {

JSON解析
1. 利用JSONKit第三方库解析json文件
1) 下载JSONKit  https://github.com/johnezang/JSONKit
2) 将JSONKit.h和JSONKit.m copy到我们应用的工程中
3) 注意是不是ARC
       

- (void)parseUseJSONKit
      {
   NSURL *url = [NSURL 
URLWithString:@"http://m.weather.com.cn/data/101180701.html"];
    NSString *jsonString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
    NSDictionary *weatherDic = [jsonString objectFromJSONString];
    NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];
    m_txtView.text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天气状况是: %@ %@\n%@:%@",[weatherInfo objectForKey :@"date_y"],[weatherInfo objectForKey :@"week"],[weatherInfo objectForKey :@"city"],[weatherInfo objectForKey :@"weather1"],[weatherInfo objectForKey :@"temp1"],[weatherInfo objectForKey :@"index"],[weatherInfo objectForKey :@"index48_d"]];
      }

 
2. 利用SBJson第三方库解析json文件
1) 下载SBJson  https://github.com/stig/json-framework
2) 编译下载号的工程,将静态库libsbjson-ios.a文件导入到我们应用的工程中,并且将相应的头文件导入到应用中(其中包括: SBJson.h,SBJsonParser.h, SBJsonWriter.h, SBJsonStreamParser.h, SBJsonStreamParserAdapter.h, SBJsonStreamWriter.h, SBJsonStreamTokeniser.h, SBJsonStreamWriter.h, SBJsonStreamParserAdapter.h)
3) 进入” SBJson.h”,这个文件是支持ARC的
4) 使用过程如下:

- (void)parseUseSBJson
{
    NSURL *url = [NSURL URLWithString:@"http://m.weather.com.cn/data/101180701.html"];
    NSString *jsonString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
    SBJsonParser *parser = [[SBJsonParser alloc]init];
    
    NSDictionary *rootDic = [parser objectWithString:jsonString];
   NSDictionary *weatherInfo = [rootDic objectForKey:@"weatherinfo"];
    m_txtView.text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天气状况是: %@ %@\n%@:%@",[weatherInfo objectForKey :@"date_y"],[weatherInfo objectForKey :@"week"],[weatherInfo objectForKey :@"city"],[weatherInfo objectForKey :@"weather1"],[weatherInfo objectForKey :@"temp1"],[weatherInfo objectForKey :@"index"],[weatherInfo objectForKey :@"index48_d"]];
}

 

3. iOS SDK自动带的NSJSONSerialization类解析json文件
直接使用NSJSONSerialization类,如下:

- (void)parseUseNSJSONSerialization
{
NSURL *url = [NSURL URLWithString:@"http://m.weather.com.cn/data/101180701.html"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
  NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:nil];
    NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];
   m_txtView.text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天气状况是: %@ %@\n%@:%@",[weatherInfo objectForKey :@"date_y"],[weatherInfo objectForKey :@"week"],[weatherInfo objectForKey :@"city"],[weatherInfo objectForKey :@"weather1"],[weatherInfo objectForKey :@"temp1"],[weatherInfo objectForKey :@"index"],[weatherInfo objectForKey :@"index48_d"]];
}

 
4. 利用TouchJson第三方库解析json文件
1) 下载TouchJson包https://github.com/TouchCode/TouchJSON
2) 解压后将source文件夹中的类文件导入到我们应用的工程中
3) 注意:类库用额是非ARC
4) 引入CJSONDeserializer.h
5) 应用如下:

- (void)parseUseTouchJson
{
NSURL *url = [NSURL URLWithString:@"http://m.weather.com.cn/data/101180701.html"];
  NSString *jsonString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
    NSDictionary *rootDic = [[CJSONDeserializer deserializer]deserialize:[jsonString dataUsingEncoding:NSUTF8StringEncoding] error:nil];
    NSDictionary *weatherInfo = [rootDic objectForKey:@"weatherinfo"];
    m_txtView.text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天气状况是: %@ %@\n%@:%@",[weatherInfo objectForKey :@"date_y"],[weatherInfo objectForKey :@"week"],[weatherInfo objectForKey :@"city"],[weatherInfo objectForKey :@"weather1"],[weatherInfo objectForKey :@"temp1"],[weatherInfo objectForKey :@"index"],[weatherInfo objectForKey :@"index48_d"]];
}

 
5. 利用NextiveJson第三方库解析json文件
1) 下载NextiveJson第三方库 https://github.com/nextive/NextiveJson
2) 应用工程设置为非ARC
3) 将Extensions.h, Extensions.m, NXDebug.h, NXDebug.m, NXJsonParser.h, NXJsonParser.m, NXJsonSerializer.h, NXJsonSerializer.m, NXSerializable.h 文件copy到工程中
4) 使用NextiveJson,解析json文件,如下:

- (void)parseUseNextiveJson
{
    NSURL *url = [NSURL URLWithString:@"http://m.weather.com.cn/data/101180701.html"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSDictionary *weatherDic = [NXJsonParser parseData:responseData error:nil ignoreNulls:NO];
    NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];
    m_txtView.text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天气状况是: %@ %@\n%@:%@",[weatherInfo objectForKey :@"date_y"],[weatherInfo objectForKey :@"week"],[weatherInfo objectForKey :@"city"],[weatherInfo objectForKey :@"weather1"],[weatherInfo objectForKey :@"temp1"],[weatherInfo objectForKey :@"index"],[weatherInfo objectForKey :@"index48_d"]];
}

 

 

JSON解析

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
JSON数据格式,在Android中被广泛运用于客户端和网络(或者说服务器)通信,非常有必要系统的了解学习
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-
JSON(JavaScript Object Notation) 定义: 它是基于JavaScript编程语言ECMA-262 3rd Edition-Decemb
先谢谢教程的提供者,本人仅仅是为学习所用,无他意! 一、json介绍: http://www.json.org/json-zh
String strTest = "{'one':[ {'two':[ {'three':'去头屑','four':[ {'five':'用立白'},{'six':'和尚
JSON(JavaScript Object Notation) 定义: 它是基于JavaScript编程语言ECMA-262 3rd Edition-Decemb
一、 windows XP 1. MIME设置: 在IIS的站点属性的HTTP头设置里,选MIME 映射中点击”文件类型”-
之前我们都是解析XML文件,虽然规范化了文件传输的定义格式,但是大家有没有意识到每次传输前都要进
引用:http://blog.csdn.net/enuola/article/details/7903632 作为一种轻量级的数据交换格式,json
一、 windows XP 1. MIME设置: 在IIS的站点属性的HTTP头设置里,选MIME 映射中点击”文件类型”-
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号