Android客户端与JAVA服务端JSON传值

分类:android 1905人阅读 评论(0) 收藏 举报 JSON android

假设你已经了解JSON数据是怎么一回事了。

1、服务端

服务器端使用json-lib 组装JSON数据的,在Servlet类或者相关容器类中,这里是在struts2中的action类中操作的,代码如下:

[java] view plain copy
  1. Listlist=userService.getAllObject();//这里是从数据库查询出相关数据,封装成对象,放入list中的
  2. JSONArrayja=JSONArray.fromObject(list);//组装成JSON数据
  3. System.out.println("ja-->"+ja.toString());
  4. /*打印出来的数据如下所示
  5. [
  6. {"createDate":"2012-05-2400:04:10.0","createMan":"system","inteUpdateDate":"",
  7. "integralId":-1,"isUpdateInteApp":0,"isUpdateRecApp":0,"lb":0,"needGames":15,
  8. "phoneIMEI":"1234556","phoneSystem":"","phoneType":"","recUpdateDate":"",
  9. "recomAppId":-1,"screenHeight":0,"screenWidth":0,"type":0,"userId":10100},
  10. {"createDate":"2012-05-2400:04:56.0","createMan":"system","inteUpdateDate":"",
  11. "integralId":-1,"isUpdateInteApp":0,"isUpdateRecApp":0,"lb":0,"needGames":15,
  12. "phoneIMEI":"1234557","phoneSystem":"","phoneType":"","recUpdateDate":"",
  13. "recomAppId":-1,"screenHeight":0,"screenWidth":0,"type":0,"userId":10101}
  14. ]
  15. */
  16. HttpServletResponseresponse=ServletActionContext.getResponse();
  17. PrintWriterout=response.getWriter();
  18. out.write(ja.toString());//返回字符串格式的JSON数据
  19. out.flush();
  20. out.close();

2、客户端

假设服务端提供的接口地址为:http://192.168.1.102:8088/AndroidService/service/getUsers.action

客户端访问服务端及解析服务端返回JSON数据主要代码如下:

[java] view plain copy
  1. privatevoidgetLocation(){
  2. StringBuilderbuilder=newStringBuilder();
  3. HttpClientclient=newDefaultHttpClient();
  4. HttpGetget=newHttpGet("http://192.168.1.102:8088/AndroidService/service/getUsers.action");
  5. try{
  6. HttpResponseresponse=client.execute(get);//这里使用的是Get方式访问服务端接口,当然也可以使用Post方式
  7. BufferedReaderreader=newBufferedReader(newInputStreamReader(
  8. response.getEntity().getContent()));
  9. for(Strings=reader.readLine();s!=null;s=reader.readLine()){
  10. builder.append(s);
  11. }
  12. JSONArrayarray=newJSONArray(newString(builder.toString()));
  13. for(inti=0;i<array.length();i++){
  14. JSONObjectitem=array.getJSONObject(i);
  15. StringuserId=item.getString("userId");
  16. StringphoneIMEI=item.getString("phoneIMEI");
  17. StringcreateMan=item.getString("createMan");
  18. StringcreateDate=item.getString("createDate");
  19. //这里txtInfo是一个TextView控件
  20. txtInfo.append("userId:"+userId+"phoneIMEI:"+phoneIMEI
  21. +"createMan:"+createMan+"createDate:"+createDate);
  22. }
  23. }catch(Exceptione){
  24. e.printStackTrace();
  25. }
  26. }

更多相关文章

  1. 简单的三方登录SDK示例,Android(安卓)Activity之间数据的传递
  2. Android(安卓)数据序列化总结
  3. Android数据库操作查询中Cursor类的问题
  4. Android(安卓)客户端发送邮件(JMail方式)
  5. Android联系人数据库全解析(3)
  6. Android联系人数据库全解析(4)
  7. 使用NDK开发SQLite3
  8. Android开发之数据保存技术(一)
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. android stack-trace分析
  2. ART登场,Android要和核心虚拟机Dalvik说再
  3. 百度笔试题
  4. Android(安卓)LazyList 从网络获取图片并
  5. android中action详解
  6. [转]android两次按返回键退出程序实现
  7. Android(安卓)百度地图开发之一(Hello Bai
  8. [置顶] Android ble低功耗蓝牙开发
  9. Android开发(一):Android(安卓)Studio及SD
  10. 论文翻译——DREBIN : Effective and Exp