首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

json模式的 Android 客户端与服务器端数据交互

2014-01-12 
json形式的 Android 客户端与服务器端数据交互???? Android 客户端与服务器端数据交互一、json封装数据????

json形式的 Android 客户端与服务器端数据交互

???? Android 客户端与服务器端数据交互

一、json封装数据

?????? 1、json数据有两种形式JSONArray,JSONObject其中JSONObject中封??

??????????? 装的是对象,JSONArray中是以数组的形式存储对象的,它里面包

??????????? 含的是许多的对象。

?????? 2、JSONObject处理处理一些简单实体类POJO或者map

????????????JSONArray处理一些数组集合类的使用

???????3、任何一个java对象对可以用fromObject()方法转成json格式的输出


二、客户端向服务器端发送数据

?????? 1、申明一个异步的http客户端请求

???????????? AsyncHttpClient client = new AsyncHttpClient();

?????? 2、请求参数

???????????? RequestParams pa = new RequestParams();
???????????? pa.put("id", id);
???????????? pa.put("partem", "json");

????????3、以post的形式将数据发送到服务器

???????????? client.post("http://10.0.2.2:8080/Trip/AllTrip_placeServlet", pa,
??????????????????? new JsonHttpResponseHandler() {
??????????????????????? @Override
??????????????????????? public void onFailure(Throwable e,
????????????????????????????? JSONObject/JSONArray errorResponse) {
?????????????????????????????????? super.onFailure(e, errorResponse);
???????????????????????????????}
?????????????????????? @Override
????????????????????? ?public void onSuccess(JSONArray/JSONObject response) {
????????????????????????????????? ?super.onSuccess(response);

??????????????????????????????????? //对象及直接使用,JSONArray就循环取出数据,

????????????????????????????????????? 封装到对象,将对象添加到list里面,以后就可以

????????????????????????????????????? 使用的所有的对象了

?????????????????????????????? }

?????????????注意:http://10.0.2.2:8080/Trip/AllTrip_placeServlet,中的10.0.2.2

???????????? 如果用android端的虚拟手机的话就用这个就行了,这样避免了每一

???????????? 次都换?ip地址,但是也可以用服务器端的ip地址,看个人爱好,至

???????????? 于用实机测试的话那就得将服务器的ip地址写在上面,比如说

?????????????192.168.XXX.XXX,当成功之后在onSuccess方法里面操作即可。

三、服务器端实现。

???????1、在上面给定的doPost方法里面接收参数

?????????????????? String id=request.getParameter("id");
???????????? String partem=request.getParameter("partem");

?????? 2、调用其他的类实现访问数据库操作,实现想要的操作

???????????? 增删改查数据库数据

?????? 3、当数据库的数据库取回来之后,或者是完成相应的操作得到相应的

????????????回应之后,需将数据传送到客户端。

??????????? if(partem.equals("json")){
????????????????? JSONArray json=JSONArray.fromObject(list);
??????????????????response.setContentType("application/json");
???????????????? ?response.setCharacterEncoding("utf-8");
????????????????? response.getWriter().write(json.toString());
??????????? }?

??????????? //此处封装的是list,如果是的单个的对象的话,则可以用

???????????????? JSONObject json=JSONObject.fromObject(对象);

???????4、客户端只需在onSuccess方法里面接收数据,操作即可。

?

四、总的来说需区别json封装的是对象还是数组,封装只需调用fromObject.

热点排行