在Android基礎_web通信2中,我運用的JSONObject是Android原生的json類,通過import org.json.JSONObject來導入。 還有另外一種更簡單的方法,就是用Gson解析 一.導入Gson包 複製你需要添加的jar,並將其黏貼到app— —src— —main ...
在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中一樣。這裡不粘貼代碼了。