快捷搜索:

iOS 中 JSON 数据交换格式,iosjson

iOS 中 www.918.comJSON 数据交换格式,iosjson

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

    如有不对,还望指点!




JSON数据格式是这样的:

JSON是一种轻量级数据交换格式。json简单说就是js中的对象和数组,所以这两种结构就是对象和数组2种结构,你用的数据格式就是对象和数组的复合结构。
你的示例JSON数据是名/值对,其中只有一个"wegInstLt"的变量名,值是包含一个条目的数组。假设var info={"wegInstLt":[{"billTypeCode":"0","channelId":530,"channelKind":"03","isHaveBillDate":"0","isHavePayAmount":"0","isLeePay":"0","isPrePay":"1","wiliCode":"1238","wiliItem":"00","wiliName":"哈尔滨市自来水公司","wltiId":10345}]}; 要获得"哈尔滨市自来水公司"可以这样写:
info.wegInstLt[0].wiliName
希望可以帮到你,祝你生活愉快!
 
JSON是干什用的?轻量级的数据交换格式?

摘自百度百科

JSON建构有两种结构:
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组2种结构,通过这两种结构可以表示各种复杂的结构
1、对象:对象在js中表示为“{}”扩起来的内容,数据结构为
{key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理
解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2、数组:数组在js中是中括号“[]”扩起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
经过对象、数组2种结构就可以组合成复杂的数据结构了。
 

http://www.bkjia.com/Androidjc/888514.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/888514.htmlTechArticleiOS 中 JSON 数据交换格式,iosjson JSON (JavaScript Object Notation)是一种轻量级的数据交换式。JSON 的具体教程,可以参见 JSON 中国: http://www....

本文源自: AG88平台

您可能还会对下面的文章感兴趣: