IOS学习笔记之XML于JSON解析

    在学过网络请求之后,紧接着就是XML与JSON解析,XML和JSON解析就是截取字符串,这点是最重要的部分.当我们从网络请求到数据之后,基本都是XML形式,其内部无外乎就是数组套字典再套数组,或者字典套数组或者再套字典.那么怎么解析这些数据呢?我们从最开始的网络请求开始,一步一步用代码完成.

    //当输入网址后,如果网址中需要有参数的,先将网址进行拼接,拼接成一个完整的网址后,在进行网络请求

- (void)startConnectURL:(NSString *)str parmaters:(NSDictionary *)parmaters {


   NSString *mystr = @"";

   for (NSString *keyin parmaters) {

       if ([mystr length] ==0) {

            mystr = [NSStringstringWithFormat:@"?%@=%@", key, [parmatersobjectForKey:key]];

        }

       else {

            mystr = [NSStringstringWithFormat:@"%@%@=%@&", mystr, key,[parmatersobjectForKey:key]];

        }

    }

    str = [NSStringstringWithFormat:@"%@%@", str, mystr];


   self.urlName = str;


   NSURL *url = [NSURLURLWithString:str];

    NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];

    [requestsetHTTPMethod:@"GET"];

    [NSURLConnectionconnectionWithRequest:request delegate:self];

}

//使用NSURLConnectionDataDelegate协议方法, 当下载完成后, 将文件以NSDATA形式存储本地.

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {


}


- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {

    [self.dataappendData:data];

}


- (void)connectionDidFinishLoading:(NSURLConnection *)connection {


    //存储数据

   NSString *name = [ContactModelurlWithStr:self.urlNameparmaters:nil];

    [ToolModelsaveFile:_dataFilename:name];

    [self.delegatecontect:_data];

}


- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

{

   NSLog(@"%@", error);

}

//在其他页面调用本地的文件,开始解析

- (void)contect:(NSData *)data

{  //JSON解析很容易,只需要一个方法就可以帮助完成数据的解析工作,不过一定要看好结构,到底用什么类型的元素接收解析后的数值.

    NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:data options:NSUTF8StringEncodingerror:nil];

   NSArray *array = [dic objectForKey:@"events"];

   for (NSDictionary *myDicin array) {

       ActiveModel *model = [[ActiveModelalloc] init];

        [model setValuesForKeysWithDictionary:myDic];

        [_activeArrayaddObject:model];

        [modelrelease];

    }

    [_activeTable reloadData];

}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值