数据解析。
@interface ViewController (){
__weak IBOutlet UITextView *textvieww;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
例解析一下json数据
{"name":"zhangmi","age":"18"} 返回字典类型
{"user":{"name":"zhangmi","age":"18"}}
[{"name":"zhangmi"},{"name":"xiaogou"}]返回数组类型
{"user":[{"name":"zhangmi"},{"name":"xiaogou"}]}
*/
- (IBAction)jsonnn:(id)sender {
//网络解析
NSURL *url=[NSURL URLWithString:@"http://192.168.100.163/admin/test/test.html"];
//1 NSData *urlData=[NSData dataWithContentsOfURL:url];
/*2
NSString *jsonStr=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSData *urlData=[jsonStr dataUsingEncoding:NSUTF8StringEncoding];
*/
NSURLRequest *re1=[[NSURLRequest alloc]initWithURL:url];
NSData *urlData=[NSURLConnection sendSynchronousRequest:re1 returningResponse:nil error:nil];
id jsonUrl=[NSJSONSerialization JSONObjectWithData:urlData options:NSJSONReadingAllowFragments error:nil];
if ([jsonUrl isKindOfClass:[NSDictionary class]]) {
NSDictionary *dicc=(NSDictionary*)jsonUrl;
textvieww.text=[textvieww.text stringByAppendingString:@"\n"];
textvieww.text=[textvieww.text stringByAppendingString:[dicc objectForKey:@"name"]];
textvieww.text=[textvieww.text stringByAppendingString:@"\n"];
textvieww.text=[textvieww.text stringByAppendingString:[dicc objectForKey:@"age"]];
}
/*
//要解析的字符串进行转义
NSString *jsonStr = @"{\"name\":\"zhangmi\",\"age\":\"18\"}";
//转换数据类型
NSData *jsonData=[jsonStr dataUsingEncoding:NSUTF8StringEncoding];
//通过NSJSONSerialization类解析json数据
//参数1要传入的数据 参数2 枚举类型:NSJSONReadingAllowFragments允许要解析的数据可以不是nsdictionary和nsarray
//NSJSONReadingMutableContainers 返回一个可变字典或可变数组 NSJSONReadingMutableLeaves返回一个可变字符串
//返回值可能是字典类型也可能是数组类型 所以定义为id类型 再对返回值进行判断 error:可以设置报错信息
id jsonObj =[NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:nil];
//判断解析出来的类型
if ([jsonObj isKindOfClass:[NSDictionary class]]) {
//字典类型
//强制转换成字典对象
NSDictionary *dic=(NSDictionary*)jsonObj;
textvieww.text=[textvieww.text stringByAppendingString:@"\n"];
//访问key值 得到value值
textvieww.text=[textvieww.text stringByAppendingString:[dic objectForKey:@"name"]];
//回车
textvieww.text=[textvieww.text stringByAppendingString:@"\n"];
textvieww.text=[textvieww.text stringByAppendingString:[dic objectForKey:@"age"]];
}
if ([jsonObj isKindOfClass:[NSArray class]]) {
//数组类型
}
*/
}
老师可不可以帮忙调试一下是什么问题
正在回答
网络数据解析的课程,你不用着急啊,你先按部就班完成该步骤的内容学习,到第三个专题就会有网络数据解析课程的讲解了,如果到时候有什么问题或者不明白的地方,可以在问答里进行提问。祝学习愉快~
- 参与学习 516 人
- 提交作业 158 份
- 解答问题 637 个
本路径采用基础+案例方式,助你解开对界面优化、数据储存、屏幕适配的疑惑。6小时团购项目实战加最新版本Swift讲解,让你掌握更多iOS开发技巧。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星