JSON解析---初识
JSON(JavaScript Object Notation)
是一种轻量级的数据交换格式
全然独立于语言的文本格式
易于人阅读和编写
易于解析和生成
(网络传输速度快)
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解析---初识的更多相关文章
- Android okHttp网络请求之Json解析
前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...
- Json解析工具的选择
前言 前段时间@寒江不钓同学针对国内Top500和Google Play Top200 Android应用做了全面的分析(具体分析报告见文末的参考资料),其中有涉及到对主流应用使用json框架Gson ...
- 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 ...
- Android之JSON解析
做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSO ...
- Android总结之json解析(FastJson Gson 对比)
前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...
- JSON解析和XML解析对比
JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...
- iOS json解析的几种方法 NSJSONSerialization,JSONKit,SBJson ,TouchJson
相关的第三方类库大家可以去github上下载 1.NSJSONSerialization 具体代码如下 : - (void)viewDidLoad { [super viewDidLoad]; NSD ...
- Json解析工具Jackson(使用注解)
原文http://blog.csdn.net/nomousewch/article/details/8955796 接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给 ...
- Json解析工具Jackson(简单应用)
原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...
随机推荐
- linux串口驱动分析
linux串口驱动分析 硬件资源及描写叙述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)port,每一个port都能够在中断模式或 DMA 模式下操作 ...
- Spring MVC 注解[转]
[学习笔记]基于注解的spring3.0.x MVC学习笔记(九) 摘要: 本章节,仅为@SessionAttributes的功能扩展介绍介绍,结合@requestparam注解进行简易无数据库分页. ...
- 题目:[NOIP1999]拦截导弹(最长非递增子序列DP) O(n^2)和O(n*log(n))的两种做法
题目:[NOIP1999]拦截导弹 问题编号:217 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发 ...
- (原创)android4.4沉浸式标题栏
趁着清明节的闲工夫,把我的百年不升级一次系统的红米note手机升级到了miuiv6的系统,早就听说android4.4的系统有沉浸式标题栏,一直没有体验过.这次终于有机会了.看了几个手机上常用的应用都 ...
- DateBox( 日期输入框) 组件
本节课重点了解 EasyUI 中 DateBox(日期输入框)组件的使用方法,这个组件依赖于 Combo(自定义下拉框)和 Calendar(日历). 一. 加载方式//class 加载方式<i ...
- Layout( 布局)
一. 加载方式//class 加载方式<div id="box" class="easyui-layout"style="width:600px ...
- SQL 2008 R2 数据库镜像操作
镜像操作请参考:http://blog.csdn.net/dba_huangzj/article/details/35995083 应用程序数据库连接字符串(带见证服务器即自动故障转移): DBHel ...
- sqlserver中的序列
序列是由用户定义的绑定到架构的对象.序列依据定义的间隔按升序或降序生成,并可配置为用尽时重新启动(循环).序列不与特定表关联.序列与表之间的关系由应用程序进行控制. 创建序列的语法: CREATE S ...
- MiniUI学习笔记1
1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...
- JAVADOC 常见使用方法 帮助文档
我们知道Java中有三种注释语句: 1.//用于单行注释. 2./*...*/用于多行注释,从/*开始,到*/结束,不能嵌套. 3./**...*/则是为支持jdk工具javadoc.exe而特有的注 ...