在Android基础_web通信2中,我运用的JSONObject是Android原生的json类,通过import org.json.JSONObject来导入。
还有另外一种更简单的方法,就是用Gson解析
一.导入Gson包
复制你需要添加的jar,并将其黏贴到app— —src— —main— —libs文件夹下,可运行的AndroidStudio项目都有像这样的目录结构。可以看到虽然jar已经复制黏贴过来了,但是还未导入,所以看不到jar中包含的内容。而已导入的jar,则可以看到jar中内容。
不清楚怎么导入的可以百度搜索一下。
二.代码
在web端操作数据的代码
//根据Id查询单个用户 protected void doFindUserById(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out=response.getWriter(); //取出ID int id=Integer.parseInt(request.getParameter("uno")); for (Users users : userList) { if(users.getUno()==id){ out.println(new Gson().toJson(users)); return; } } out.close(); }
//查询所有用户 protected void doFindUserList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out=response.getWriter(); //将所有用户以JSON格式响应到客户端 out.println(new Gson().toJson(userList)); out.close(); }
移动客服端操作数据的代码
//查询单个用户 public void test_1(View view){ try { URL url=new URL("http://192.168.3.222:8080/Web_Project2/UserServlet?method=userById&uno=1"); HttpUtils.doGet(url, new CallBack() { @Override public void success(String str) { Log.i("User Info","------success-----"); TbUsers users=new Gson().fromJson(str,TbUsers.class); Log.i("User Info",users.getUname()+","+users.getUpwd()); } @Override public void failed(String str) { Log.i("Error Message",str); } }); } catch (Exception e) { e.printStackTrace(); } }
//查询所有用户 public void test_2(View view){ try { URL url=new URL("http://192.168.3.222:8080/Web_Project2/UserServlet?method=userList"); HttpUtils.doGet(url, new CallBack() { @Override public void success(String str) { List<TbUsers> userList=new Gson().fromJson(str,new TypeToken<List<TbUsers>>(){}.getType()); for(TbUsers u:userList){ Log.i("User Info:",u.getUname()+","+u.getUpwd()); } } @Override public void failed(String str) { } }); } catch (Exception e) { e.printStackTrace(); } }
工具类和Android基础_web通信2中一样。这里不粘贴代码了。