数据解析。

数据解析。

@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]]) {

        //数组类型

    }

    */

}

老师可不可以帮忙调试一下是什么问题

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

网络数据解析的课程,你不用着急啊,你先按部就班完成该步骤的内容学习,到第三个专题就会有网络数据解析课程的讲解了,如果到时候有什么问题或者不明白的地方,可以在问答里进行提问。祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS进阶:界面优化与数据存储
  • 参与学习       516    人
  • 提交作业       158    份
  • 解答问题       637    个

本路径采用基础+案例方式,助你解开对界面优化、数据储存、屏幕适配的疑惑。6小时团购项目实战加最新版本Swift讲解,让你掌握更多iOS开发技巧。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师