JSON解析
2013-09-25 00:00
459 查看
[plain]
view plain
copy
print
?
<span style="font-size:14px">{
"students":[
{
"name":"stu1",
"age":"20"
},
{
"name":"stu2",
"age":"22"
}
],
"teachers":[
{
"name":"tea1",
"age":"30"
},
{
"name":"tea2",
"age":"33"
}
],
"subjects":{
"C":{
"subID":"1",
"score":"2",
"hour":"80"
},
"objective-c":{
"subID":"2",
"score":"3",
"hour":"60"
}
}
}</span>
首先什么是
json?
Json的本质就是字符串并且是一组有固定格式的字符串,
举个栗子:
{"key":"value","key":"value"} --这就是一组标准的,基本的json
以下:
1、["json","string"] --这是个字符串数组
2、{"key":["json","string"]} --key的value是一个字典数组
3、[{"key":"value","key":"value"},{"key":"value","key":"value"}] --json数组
{"key" : [{"key":"value","key":"value"},{"key":"value","key":"value"}]}
--key的value是一个json数组
红色字符数组,绿色字典数组
通过键值对
,
数组和字符串来整理
/
封装的用于表示数据的字符串
json
字符串可以解析成为
oc
的
NSDictionary
这个用法需要引入命令行参数,json文件的路径就通过命令行参数导入的。
在跳出新的页面选择Run XXX(XXX为工程名),之后选择Arguments选项,在Arguments Passed On Launch中添加一条新内容,为你的json文件的路劲名包括。
一、这个是在OC中解析json文件:
NSString *path = [NSStringstringWithUTF8String:argv[1]];
NSData *data = [NSDatadataWithContentsOfFile:path];
NSDictionary* jsonObject = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableContainerserror:nil];
NSLog(@"%@",[[jsonObjectobjectForKey:@"subjects"]objectForKey:@"C"]);
二、下面这个实在iphone中,实现json解析:
NSString *plistPath = [[NSBundlemainBundle]pathForResource:@"demo"ofType:@"json"];
NSData *data = [NSDatadataWithContentsOfFile:plistPath];
NSDictionary* jsonObject = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableContainerserror:nil];
NSLog(@"%@",[[jsonObjectobjectForKey:@"subjects"]objectForKey:@"C"]);
NSArray *ages = [jsonObjectvalueForKeyPath:@"teachers.age"];
NSLog(@"%@",ages);
Json的小技巧:
//最老的老师多少岁
NSLog(@"%@",[jsonObject valueForKeyPath:@"teachers.@max.age"]);
//平均多大了?
NSLog(@"%@",[jsonObject valueForKeyPath:@"teachers.@avg.age"]);
//最小
NSLog(@"%@",[jsonObject valueForKeyPath:@"teachers.@min.age"]);
//总共多少岁
NSLog(@"%@",[jsonObjectvalueForKeyPath:@"teachers.@sum.salary"]);
//总共几个老师?
NSLog(@"%@",[jsonObjectvalueForKeyPath:@"teachers.@count"]);//teachers是一个数组,@count ,数组的元素个数
NSLog(@"%@",[jsonObject valueForKeyPath:@"teachers.count"]);
view plain
copy
?
<span style="font-size:14px">{
"students":[
{
"name":"stu1",
"age":"20"
},
{
"name":"stu2",
"age":"22"
}
],
"teachers":[
{
"name":"tea1",
"age":"30"
},
{
"name":"tea2",
"age":"33"
}
],
"subjects":{
"C":{
"subID":"1",
"score":"2",
"hour":"80"
},
"objective-c":{
"subID":"2",
"score":"3",
"hour":"60"
}
}
}</span>
首先什么是
json?
Json的本质就是字符串并且是一组有固定格式的字符串,
举个栗子:
{"key":"value","key":"value"} --这就是一组标准的,基本的json
以下:
1、["json","string"] --这是个字符串数组
2、{"key":["json","string"]} --key的value是一个字典数组
3、[{"key":"value","key":"value"},{"key":"value","key":"value"}] --json数组
{"key" : [{"key":"value","key":"value"},{"key":"value","key":"value"}]}
--key的value是一个json数组
红色字符数组,绿色字典数组
通过键值对
,
数组和字符串来整理
/
封装的用于表示数据的字符串
json
字符串可以解析成为
oc
的
NSDictionary
这个用法需要引入命令行参数,json文件的路径就通过命令行参数导入的。
在跳出新的页面选择Run XXX(XXX为工程名),之后选择Arguments选项,在Arguments Passed On Launch中添加一条新内容,为你的json文件的路劲名包括。
一、这个是在OC中解析json文件:
NSString *path = [NSStringstringWithUTF8String:argv[1]];
NSData *data = [NSDatadataWithContentsOfFile:path];
NSDictionary* jsonObject = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableContainerserror:nil];
NSLog(@"%@",[[jsonObjectobjectForKey:@"subjects"]objectForKey:@"C"]);
二、下面这个实在iphone中,实现json解析:
NSString *plistPath = [[NSBundlemainBundle]pathForResource:@"demo"ofType:@"json"];
NSData *data = [NSDatadataWithContentsOfFile:plistPath];
NSDictionary* jsonObject = [NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableContainerserror:nil];
NSLog(@"%@",[[jsonObjectobjectForKey:@"subjects"]objectForKey:@"C"]);
NSArray *ages = [jsonObjectvalueForKeyPath:@"teachers.age"];
NSLog(@"%@",ages);
Json的小技巧:
//最老的老师多少岁
NSLog(@"%@",[jsonObject valueForKeyPath:@"teachers.@max.age"]);
//平均多大了?
NSLog(@"%@",[jsonObject valueForKeyPath:@"teachers.@avg.age"]);
//最小
NSLog(@"%@",[jsonObject valueForKeyPath:@"teachers.@min.age"]);
//总共多少岁
NSLog(@"%@",[jsonObjectvalueForKeyPath:@"teachers.@sum.salary"]);
//总共几个老师?
NSLog(@"%@",[jsonObjectvalueForKeyPath:@"teachers.@count"]);//teachers是一个数组,@count ,数组的元素个数
NSLog(@"%@",[jsonObject valueForKeyPath:@"teachers.count"]);
相关文章推荐
- DVI 视频接口图文解析
- IE6不能正常解析CSS文件问题的解决方法及原因分析
- ruby 过程对象 解析
- ASP JSON类文件的使用方法
- ruby 类常量 解析
- PHP6 先修班 JSON实例代码
- 一些javascript一些题目的解析
- jquery中ajax调用json数据的使用说明
- JQuery 解析多维的Json数据格式
- Ajax与JSON的一些学习总结
- JQuery将文本转化成JSON对象需要注意的问题
- jQuery 中使用JSON的实现代码
- 解析映像劫持技术第1/3页
- 用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
- js实现json数据行到列的转换的实例代码
- jQuery1.4.2与老版本json格式兼容的解决方法
- 解析 ruby 全局变量
- JSON在PHP中的应用介绍
- jquery.pagination +JSON 动态无刷新分页实现代码
- JSON 学习之完全手册 图文