• iOS 中 JSON 数据交换格式


         JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。

    JSON 的详细教程,能够參见 JSON 中国:http://www.json.org.cn/index.htm ,当然还有 JSON 在线校验格式化工具:http://www.bejson.com/ ,希望深入学习 JSON 能够參考其它教程。JSON 的轻量级是相对于 XML 文档结构而言的,描写叙述项目字符少。所以描写叙述同样的数据所需的字符个数要少,当然传输的速度就会提高而流量也会降低。

         像微博,对于微博服务端数据非常多就是 JSON ,须要对这些请求回来的数据进行本地解析。由于 Web 和移动平台开发对流量要求要尽可能的少,对速度要求又要比較快,所以 JSON 就成为理想的数据交换语言。

         把数据写成 JSON 结构过程称为“编码”过程,即是写入过程。把数据从 JSON 文档中读取处理的过程称为“解码”过程,即是解析和读取过程。

         以下列举一些 JSON 经常使用的解析框架:

         (1)SBJson

         (2)TouchJSON

         (3)YAJL 。基于SBJson,里面进行了优化,底层 API 使用 C 编写,上层 API 是 objective-c 编写。使用者能够有多不同的选择。

    它不支持 ARC ,源代码下载地址:http://lloyd.github.com/yajl/

         (4)JSONKit

         (5)NextiveJson ,此框架不支持 ARC 。源代码下载地址:http://github.com/nextive/NextiveJson

         (6)NSJSONSerialization 。从这个框架的命名规则来看。想你也猜到了它是苹果自家的 JSON 解析框架,它是 iOS5 之后提出来的。

         详细的简单实例也是能够參考这篇博客:http://blog.csdn.net/enuola/article/details/7903632/ 有些方法在 iOS7 以后的版本号中会有警告,把它改动为 iOS7 以后支持的方法便可。

         以下来实现一个利用 NSJSONSerialization 来进行解析的简单实现,当然也是能够用第三方框架,下载源代码。安装,假设不支持 ARC 配置便可。直接在 viewDidLoad 方法中进行解析

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    	// Do any additional setup after loading the view, typically from a nib.
        self.navigationItem.leftBarButtonItem = self.editButtonItem;
        
        self.detailViewController = (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
        
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(reloadView:)
                                                     name:@"reloadViewNotification"
                                                   object:nil];
        
        NotesNextiveJsonParser *parser = [NotesNextiveJsonParser new];
        //開始解析
        [parser start];
    
        NSString* path = [[NSBundle mainBundle] pathForResource:@"Test" ofType:@"json"];  //解析一个叫 Test.json 的文件
        NSData *jsonData = [[NSData alloc] initWithContentsOfFile:path];
        
        NSError *error;
        
        id jsonObj = [NSJSONSerialization JSONObjectWithData:jsonData
                                                     options:NSJSONReadingMutableContainers error:&error];
    
        if (!jsonObj || error) {
            NSLog(@"JSON解码失败");
        }
        self.listData = [jsonObj objectForKey:@"Record"];
        
    }
         

        微笑如有不正确,还望指点。



  • 相关阅读:
    【数据结构】线性表&&顺序表详解和代码实例
    【智能算法】超详细的遗传算法(Genetic Algorithm)解析和TSP求解代码详解
    【智能算法】用模拟退火(SA, Simulated Annealing)算法解决旅行商问题 (TSP, Traveling Salesman Problem)
    【智能算法】迭代局部搜索(Iterated Local Search, ILS)详解
    10. js时间格式转换
    2. 解决svn working copy locked问题
    1. easyui tree 初始化的两种方式
    10. js截取最后一个斜杠后面的字符串
    2. apache整合tomcat部署集群
    1. apache如何启动
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6742959.html
Copyright © 2020-2023  润新知