IOS JSON解析

概述:

Jason是一种流行的编码格式。编码很简单,一共只有两种:1 { } 表示的字典类型  2 [] 包括的数组类型。

json编码分析:

虽然Jason的语法简单到爆,可是它表达的内容并不简单,通过两种语法的相互嵌套,你实现无比复杂的数据结构。很有点道家“道生一,一生二,二生三,三生万物。万物负阴而抱阳,冲气以为和。”的味道。

技术分享

Json文档结构:

  1. 对象
    1. {“name":"a三哥”,”age":17}
  2. 数组
    1. [“text”,”html”,”css”]
  3. 在线解析
    1. http://json.tongxiehui.net/

IOS JSON官方文档

有需要的朋友可以参考一下

NSJSONSerialization(JSON序列化)

You use the NSJSONSerialization class to convert JSON to Foundation objects and convert Foundation objects to JSON.

你可以使用NSJSONSerialization 类把json和foundation对象相互转化。

An object that may be converted to JSON must have the following properties:

  • The top level object is an NSArray or NSDictionary.

  • All objects are instances of NSStringNSNumberNSArrayNSDictionary, or NSNull.

  • All dictionary keys are instances of NSString.

  • Numbers are not NaN or infinity.

一个将要被转化为json的对象必须符合如下要求:
顶层的对象是NSArray或者NSDictionary类型的。
所以的对象是的NSStringNSNumberNSArrayNSDictionary类型的实例,或者是NSNull
所有字典的key必须是NSString类型的。
数字不能是NaN或者无穷大。

Other rules may apply. Calling isValidJSONObject: or attempting a conversion are the definitive ways to tell if a given object can be converted to JSON data.

其他的条件可能被应用,调用 isValidJSONOBject:或者尝试转换是最后的方法来分辨所给对象是否可以转换成JSON类型的数据。

Inheritance 继承


Conforms To  符合


Import Statement  包含声明


OBJECTIVE-C

@import Foundation;

Availability 可用


Available in iOS 5.0 and later.

Creating a JSON Object (创建一个JSON对象)

简单的解析代码

这里用到了阿里的一个JSON接口,代码:https://git.oschina.net/zhengaoxing/IOS-JSON
//
//  ViewController.m
//  Jason
//
//  Created by Bc_Ltf on 15/3/26.
//  Copyright (c) 2015年 Bc_ltf. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setup];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(void)setup
{
    NSError *error;
    //加载一个NSURL对象
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://gc.ditu.aliyun.com/geocoding?a=%E8%8B%8F%E5%B7%9E%E5%B8%82"]];
    //将请求的url数据放到NSData对象中  <span style="font-size:14px;">本文原创,转载请注明出处:</span><span style="font-size:14px;">http://blog.csdn.net/zhenggaoxing/article/details/44649827</span>
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    //IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中
    NSDictionary *ali = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
    //    NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];

    NSLog(@"现在你可以看到Jason内容了:%@", ali );
}

@end

本文原创,转载请注明出处:http://blog.csdn.net/zhenggaoxing/article/details/44649827

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。