文档详情

Android从服务端获取json解析显示在客户端上面.doc

发布:2016-10-16约4.29千字共8页下载文档
文本预览下载声明
Android从服务端获取json解析显示在客户端上面 百度经验: 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Json数据的体积更加小,传输效率高,易解析,不过可读性不高; 因为这次要从服务器端得到Json数据,并且通过解析之后把解析后的数据显示在Android客户端中,首先部署服务器端代码(直接使用Jsp/Servlet): 构造的Json数据如下: [{name:张三,address:北京,age:20},{name:李四,address:上海,age:30},{name:王五,address:深圳,age:35}] [一]服务器端(Person.java省略): ①:数据构造JsonService.java public class JsonService { public static ListPerson getListPerson() { ListPerson mLists = new ArrayListPerson(); mLists.add(new Person(张三, 北京, 20)); mLists.add(new Person(李四, 上海, 30)); mLists.add(new Person(王五, 深圳, 35)); return mLists; } ②:Servlet的代码(包括构造Json数据,没有使用Json数据转换方法)JsonServlet.java public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(text/html); response.setCharacterEncoding(UTF-8); PrintWriter out = response.getWriter(); ListPerson persons = JsonService.getListPerson(); StringBuffer sb = new StringBuffer(); sb.append([); for (Person person : persons) { sb.append({).append(\name\:).append(\+person.getName()+\).append(,);????????????????????????sb.append(\address\:).append(\+person.getAddress()+\).append(,); sb.append(\age\:).append(person.getAge()); sb.append(}).append(,); } sb.deleteCharAt(sb.length() - 1); sb.append(]); out.write(new String(sb)); out.flush(); out.close(); } ③:部署到Tomact 浏览器输入http://localhost/JsonWeb/JsonServlet直接访问结果如下: [{name:张三,address:北京,age:20},{name:李四,address:上海,age:30},{name:王五,address:深圳,age:35}] 至此服务器端代码编码完成,下面进行客户端代码编写;? ? (二)客户端(Person类,和展示数据的布局文件因为简单省去)? ?? ?①:获取服务器端的Json数据并且解析的工具类JsonParse.java??必要的需要导入的包省去 public class JsonParse { /** * 解析Json数据 * * @param urlPath * @return mlists * @throws Exception */ public static ListPerson getListPerson(String urlPath) throws Exception { ListPerson mlists = new ArrayListPerson(); byte[] data = readParse(urlPath); JSONArray array = new JSONArray(new String(data)); for (int i = 0; i array.length(); i++) { JSONObject item = array.getJSONObject(i); String name = item.getS
显示全部
相似文档