JSON学习
来源:互联网 发布:淘宝 排名 编辑:程序博客网 时间:2024/05/21 21:44
一、什么是JSON
~JSON指的是JaveScript对象表示法(JavaScript Object Notation)
~JSON是轻量级的文本数据交换格式
~JSON独立于语言
~JSON具有自我描述性、更易理解
二、JSON语法
JSON语法是JavaScript语法的子集。
JSON语法规则
JSON语法是JavaScript对象表示法语法的子集。
~数据在名称/值对中
~数据由逗号分割
~花括号保存对象
~方括号保存数组
JSON名称/值对
JSON数据的书写格式是:名称/值对。类似OC中的字典
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"firstName":"John"
和OC中的字典一模一样。
JSON值
JSON值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true或false)、数组、对象(在花括号中)、null。
JSON对象
JSON对象在花括号中书写:
对象可以包含多个名称/值对:
{ "firstName":"John" , "lastName":"Doe" }
JSON数组
JSON数组在方括号中书写:
数组可包含多个对象:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
1,将JSON数据转化为OC的对象
/***** 将Json数据转化为OC的对象 *****/ // Json字符串 NSString *jsonStr = @"{ \"name\" : \"ZhangSan\", \"age\":20, \"dog\" : {\"name\":[\"XiaoHei\", \"XiaoQiang\"]} }"; NSData *data = [jsonStr dataUsingEncoding:NSUTF8StringEncoding]; NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; NSLog(@"%@", dict); // 打印dog对应的值,而它的值又是一个字典,所以再找name对应的值 NSLog(@"%@", dict[@"dog"][@"name"]); // 使用方法要一步一步来找,先找出dog键对应的值,然后再找出name键对应的值 NSDictionary *dogDict = [dict objectForKey:@"dog"]; NSArray *array = [dogDict objectForKey:@"name"]; NSLog(@"%@", array); // 找出第一个名字 NSString *name = [array objectAtIndex:0]; NSLog(@"%@", name); // 年龄 NSNumber *num = [dict objectForKey:@"age"]; NSLog(@"%@", num);
2
将OC的对象转化为JSON数据
NSArray *arr = @[ @123, @"123", @{@"name":@"Lisi", @"age":@30} ]; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:nil]; NSString *str = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"%@", str); // 可以输出到你的桌面上看看效果。 [str writeToFile:@"/Users/apple/Desktop/test.json" atomically:YES encoding:NSUTF8StringEncoding error:nil];
0 0
- json学习-什么是json
- 【json】慕课网json学习
- JSON 学习
- JSON学习
- JSON学习
- JSON学习
- JSON学习
- JSON学习
- json 学习
- JSON学习
- JSON学习
- json学习
- json学习
- JSON学习
- json学习
- 学习JSON
- JSON学习
- json学习
- hdu1253BFS入门
- HNU12884_Area Coverage(扫描线/线段树+离散化)
- 在汉澳sinox2014建立ZFS高可靠文件存储系统
- HDU 4951
- windows编程--动态加载光标和图标
- JSON学习
- PHP注释以及各种语言的注释
- Objective-c 文件的基本操作
- VisualGDB调试
- Android权限之sharedUserId和签名
- javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
- 学习资源汇总
- 网络\路由器 端口映射的作用
- css3 box-sizing属性