JSON解析笔记
来源:互联网 发布:ug8.0编程怎么设置速 编辑:程序博客网 时间:2024/06/09 08:54
if 0/1
代码一 重要!!!
else
代码二
endif
注意:如果if后面是0的话就执行代码二,如果if后面是1 就执行代码1
一,JSON简介:
JSON 是一种轻量级的数据交换格式,文件内容类似于oc的字典中的键值对。
二,JSON语法:
键值对表示:键名用双引号括起来,冒号后面跟值。值为双引号括起来的字符串/中括号括起来的数组/大括号括起来的字典形式。
其值类型可以对应oc类型:
1,数字:整数或者是浮点数
2,字符串:在双引号中
3,逻辑值:ture或false
4,数组:在大括号中
5,字典:在大括号中
6,null:空值
三,JSON结构:
JSON 有数组和字典两种结构,通过这两种结构可以表示各种复杂结构。
四,JSON解析:
1,解析本地文件。
//1,根据路径获得文件中的数据赋值给字符串
NSString *jsonStr = [NSString stringWithContentsOfFile:mypath encoding:NSUTF8StringEncoding error:nil];
NSLog(@”jsonStr=%@”,jsonStr);
//2,把字符串转化为NSData数据 NSData *data = [jsonStr dataUsingEncoding:NSUTF8StringEncoding]; NSLog(@"data=%@",data); //把NSData数据存储到字典中去 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];2,解析网络上的。
1>//1,把网络地址字符串转化成url
NSURL *url = [NSURL URLWithString:myURL];
//2,把从URL上获得的数据转化成NSData数据NSData *data = [NSData dataWithContentsOfURL:url];//3,把获得的数据通过NSJSONSerialization转化成字典NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil ];NSLog(@"%@",dic);创建数据模型,把获得 的数据给数据模型赋值(重要!!)数据模型就是一个类,有成员变量,如果仅仅是数据模型的话一般没有其他方法,要实现-(NSString *)description方法//三层字典
2> for (id obj in [[[dic objectForKey:@”root”] objectForKey:@”books”] objectForKey:@”book”]) {
//创建一个数据模型book JWCMBook *book = [[JWCMBook alloc]init]; book.bookid = [obj objectForKey:@"-id"]; book.language = [obj objectForKey:@"-language"]; //注意下面这一步 book.authorArr = [NSMutableArray arrayWithObject:[[obj objectForKey:@"author"] objectForKey:@"name"]]; book.name = [obj objectForKey:@"name"]; //book.price = [[obj objectForKey:@"price"] floatValue]; book.summary = [obj objectForKey:@"summary"]; /* 如果解析出得字典键与成员变量名完全相同,就可以用[book setValuesForKeysWithDictionary:obj]比较方便,由于解析出的信息是(重要!!!) { "-id" = 3; "-language" = en; author = { name = "JK\U7f57\U7433"; }; name = "\U54c8\U5229\U6ce2\U727 price = "365.00"; summary = "\U4e3b\U4eba\U516c 其中"-id" = 3; "-language" = en; 这两个变量名和本类的成员变量名不同所以无法使用。 */ //[book setValuesForKeysWithDictionary:obj]; //添加到数组当中去 [self.bookArr addObject:book];}//呐喊
- IOS笔记Json解析
- JSON 数据解析笔记
- JSON解析笔记
- JSON解析学习笔记(json、gson、fastjson)
- Json,Gson,FastJson解析笔记
- XML和JSON解析笔记
- android笔记--JSON数据解析
- android笔记--JSON数据解析
- Android学习笔记--解析json
- JSON解析----个人学习笔记
- iOS网络笔记--JSON解析
- Json,Gson,FastJson解析笔记
- 笔记 Json各种格式解析
- Python学习笔记-json解析
- android学习笔记 Json解析
- iphone学习笔记--JSON数据解析
- jQuery学习笔记--之json解析详解
- Json解析性能比较笔记(一)
- poj2752Seek the Name, Seek the Fame
- android menu,activity,AlertDialog... 链接整理
- 淘宝Dubbo框架学习
- HDOJ5355 Cake 构造
- Armstrong树
- JSON解析笔记
- Monkey的学习与使用技巧
- 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法
- Android out of memory(一)
- Tomcat web.xml Can't convert argument: null错误解决办法
- (六) Multi project setup(多项目设置)
- 引用第三方库So文件时,eclipse会自动把libs下arneabi文件里的so文件删除掉
- 稀疏矩阵的三元组顺序表存储结构表示及实现
- HDOJ4828 Grids(数论)