项目中的连接本地服务器以及JSON解析

来源:互联网 发布:plc模块化编程实例 编辑:程序博客网 时间:2024/06/07 13:48

在做项目的时候用到了连接本地服务器以及JSON编码。

首先是在本地电脑上搭建服务器,但是在MAC上,apache是自带的,唯一需要安装就是数据库,apache的启动很简单,只要在terminal里输入:sudo apachectl -k start就可以,然后输入密码就OK了,同时开启数据库。

接下来就是php编写了,我查了一些资料,主要连接方式有两种,POST 和 GET,我选了POST,虽然用GET也没关系,但是因为GET会暴露参数,所以还是用了POST,在写php时我查了一些关于JSON编码的方式,网络上有两种方式,一种是直接进行编码:

<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?> 

还有一种就是通过数组来编码(也是我现在在用的方法):

while($row=mysql_fetch_object(($result)))//取出结果并显示        {            $u = new User();            $u->user_id=$row->user_id;            $u->username=$row->username;            $u->pic_url = $row->pic_url;            $arr[] = $u;       }        echo json_encode($arr);
通过上面两种方法,分别可以对数据进行JSON编码,到时候在程序操作过程中会方便很多。

做完了JSON编码,那么php端的基本就完成了,接下来就是本地的连接到服务器上去了。

程序连接本地服务器步骤主要为:


1.创建一个请求 :NSMutableURLRequest  (需要提供URL)

2.创建需要的数据体(就是进行POST请求需要发送的参数)

3.建立异步连接

 

 [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {        // 网络请求结束之后执行!}

在上面的代码中需要创建一个进程,而这个进程不是主进程(mainQueue) 因为如果是主进程的话,那么用户在联网的时候是不能做其他事情的,这样不合理。

而且代码返回来的是data形式的数据,data形式可以转换成string类型的,也可以转换成字典类型,因为要用到模型,所以我选择转换成字典类型的(也就是对JSON的解析):


NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];            NSLog(@"RESPONSE DATA: %@", dic);

转换成NSDictionary很简单,因为系统自带的API里的NSJSONSerialization速度相对于其他的JSON解析方式来说快很多,而且不必导入其他的第三方框架。这样就完成了对JSON的解析。





0 0
原创粉丝点击