JSON(JavaScript Object Notation)

是一种轻量级的数据交换格式

全然独立于语言的文本格式

易于人阅读和编写

易于解析和生成
(网络传输速度快)

JSON语法规则

数据在
名称/值
对中

数据有逗号分隔

花括号保存对象

方括号保存数组




下面是一个.JSON 文件

{

"class1":[

{

"name":"zhangsan",

"age":"14",

"tel":"123123123"

},

{

"name":"lisi",

"age":"13",

"tel":"123123123"

},

{

"name":"wangwu",

"age":"12",

"tel":"123123123"

}

],

"class2":[

{

"name":"zhaoliu",

"age":"15",

"tel":"123123123"

},

{

"name":"wuwu",

"age":"16",

"tel":"123123123"

},

{

"name":"liuliu",

"age":"17",

"tel":"123123123"

}

]

}

ViewController.m文件

//  JSON解析

#import "ViewController.h"

#import "JSONKit.h"

@interface
ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super
viewDidLoad];

NSString * path= [[NSBundle
mainBundle] pathForResource:@"test.json"
ofType:nil];

NSData * data=[NSData
dataWithContentsOfFile:path];

//    NSDictionary * dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

/*

//NSLog(@"%@",dic);    //打印整个JSON文件

*/

/*

NSArray * array=dic[@"class1"];   //拆一层

NSLog(@"%@",array);

*/

/*

NSArray * array=dic[@"class1"];

for(NSDictionary * dic in array)

{

NSLog(@"%@",dic);     //拆两层

}

*/

//得到model

/*

NSArray * array=dic[@"class1"];   //拆一层

//NSLog(@"%@",array);

for( NSDictionary * dic in array)

{

NSData * data=[NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];

NSString * str=[[NSString  alloc]initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@",str);

}

*/

//打印第一组的人员姓名

/*

NSArray * array=dic[@"class1"];   //拆一层

//NSLog(@"%@",array);

NSMutableArray * marray=[[NSMutableArray alloc]init];

for( NSDictionary * dic in array)

{

[marray addObject:dic[@"name"]];

}

NSLog(@"%@",marray);

*/

//引入JSONKit

//打印整个JSON文件

/*

NSDictionary * dic=[data objectFromJSONData];

NSLog(@"%@",dic);

*/

/*

NSString * str=@"{\"name\":\"zhangsan\"}";

NSData * datas=[str dataUsingEncoding:NSUTF8StringEncoding];

id obj=[datas objectFromJSONData];

NSLog(@"%@",obj);

*/

}

@end


PS:推荐一个站点 www.bejson.com
能够将没有组织结构的.JSON
文件上传。就能够轻松的转变成可视化的视图结构。

JSON解析---初识的更多相关文章

  1. Android okHttp网络请求之Json解析

    前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...

  2. Json解析工具的选择

    前言 前段时间@寒江不钓同学针对国内Top500和Google Play Top200 Android应用做了全面的分析(具体分析报告见文末的参考资料),其中有涉及到对主流应用使用json框架Gson ...

  3. iOS json 解析遇到error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed.

    Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 38 ...

  4. Android之JSON解析

    做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSO ...

  5. Android总结之json解析(FastJson Gson 对比)

    前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...

  6. JSON解析和XML解析对比

    JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...

  7. iOS json解析的几种方法 NSJSONSerialization,JSONKit,SBJson ,TouchJson

    相关的第三方类库大家可以去github上下载 1.NSJSONSerialization 具体代码如下 : - (void)viewDidLoad { [super viewDidLoad]; NSD ...

  8. Json解析工具Jackson(使用注解)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给 ...

  9. Json解析工具Jackson(简单应用)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...

随机推荐

  1. Mysql数据库的mysql Schema 究竟有哪些东西& 手工注入的基础要领

    #查看数据库版本号 mysql> select @@version; +------------+ | @@version  | +------------+ | 5.5.16-log | +- ...

  2. hdu5067Harry And Dig Machine(TSP旅行商问题)

    题目链接: huangjing 题意:给出一幅图.图中有一些点,然后从第1个点出发,然后途径全部有石头的点.最后回到原点,然后求最小距离.当初作比赛的时候不知道这就是旅行商经典问题.回来学了一下. 思 ...

  3. php中socket的使用 方法简介

    一.开启socket phpinfo();查看是否开启了socket扩展,否则在php.ini中开启. 二.服务器端代码的写法 <?php error_reporting(E_ALL); set ...

  4. 关于在xp(sp3 专业版)下安装sql2005开发版图解

    今天我在xp上安装sql2005,搞了一上午也没有搞好,最终自己还是搞好,也装了,也卸载了!这里就总结一下,让以后用sql2005的朋友能有个参考!我也是自己在GOOGLE上搜索的! 转自:http: ...

  5. Android 基于Netty的消息推送方案之概念和工作原理(二)

    上一篇文章中我讲述了关于消息推送的方案以及一个基于Netty实现的一个简单的Hello World,为了更好的理解Hello World中的代码,今天我来讲解一下关于Netty中一些概念和工作原理的内 ...

  6. 理解prototype、proto和constructor的三角关系

    javascript里的关系又多又乱.作用域链是一种单向的链式关系,还算简单清晰:this机制的调用关系,稍微有些复杂:而关于原型,则是prototype.proto和constructor的三角关系 ...

  7. SQL2008安装重启失败

    我今天安装SQL2008的一些问题经历SQL2008安装重启失败大致出错信息如下:RebootRequiredCheck 检查是否需要挂起计算机重新启动.挂起重新启动会导致安装程序失败. 失败 需要重 ...

  8. 配置 VS 2015 开发跨平台手机应用

    为了使用 VS 2015 开发跨平台手机应用,VS 2015 装了很多次,遇到了很多坑,才终于弄明白怎样配置才能正常使用C#开发手机应用,现把步骤分享给大家,以免大家少走弯路. 运行环境: Windo ...

  9. Quartz实现定时任务的配置方法

    1.   CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 ...

  10. 使用证书部署出现System.Security.Cryptography.CryptographicException 错误解决方案

    一.System.Security.Cryptography.CryptographicException: 找不到对象 at System.Security.Cryptography.Cryptog ...