`

Android从服务器端接收json数据并解析的代码

阅读更多

My Git : https://github.com/hejiawang

 

一、从服务器端获取json数据,共有两种形式,分别是HttpUrlConnection,和HttpClient(个人喜                         欢HttpUrlConnection)

 

1、HttpUrlConnection的形式,代码如下:

/**
      * 从指定的URL中获取数组
      * @param urlPath
      * @return
      * @throws Exception
      */
     public static String readParse(String urlPath) throws Exception {  
                ByteArrayOutputStream outStream = new ByteArrayOutputStream();  
                byte[] data = new byte[1024];  
                 int len = 0;  
                 URL url = new URL(urlPath);  
                 HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
                 InputStream inStream = conn.getInputStream();  
                 while ((len = inStream.read(data)) != -1) {  
                     outStream.write(data, 0, len);  
                 }  
                 inStream.close();  
                //通过out.Stream.toByteArray获取到写的数据  
                 return new String(outStream.toByteArray());
       }

 2、HttpClient的形式,代码如下:

/**
      * 访问数据库并返回JSON数据字符串
      * 
      * @param params 向服务器端传的参数
      * @param url
      * @return
      * @throws Exception
      */
     public static String doPost(List<NameValuePair> params, String url)
             throws Exception {
         String result = null;
         // 获取HttpClient对象
         HttpClient httpClient = new DefaultHttpClient();
         // 新建HttpPost对象
         HttpPost httpPost = new HttpPost(url);
         if (params != null) {
             // 设置字符集
             HttpEntity entity = new UrlEncodedFormEntity(params, HTTP.UTF_8);
             // 设置参数实体
             httpPost.setEntity(entity);
         }

         /*// 连接超时
         httpClient.getParams().setParameter(
                 CoreConnectionPNames.CONNECTION_TIMEOUT, 3000);
         // 请求超时
         httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
                 3000);*/
         // 获取HttpResponse实例
         HttpResponse httpResp = httpClient.execute(httpPost);
         // 判断是够请求成功
         if (httpResp.getStatusLine().getStatusCode() == 200) {
             // 获取返回的数据
             result = EntityUtils.toString(httpResp.getEntity(), "UTF-8");
         } else {
             Log.i("HttpPost", "HttpPost方式请求失败");
         }

         return result;
     }

 

二、解析的代码:

/**
      * 解析
      * 
      * @throws JSONException
      */
     private static ArrayList<HashMap<String, Object>> Analysis(String jsonStr)throws JSONException {
    
         JSONArray jsonArray = null;
         // 初始化list数组对象
         ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
         jsonArray = new JSONArray(jsonStr);
         for (int i = 0; i < jsonArray.length(); i++) {
             JSONObject jsonObject = jsonArray.getJSONObject(i);
             // 初始化map数组对象
             HashMap<String, Object> map = new HashMap<String, Object>();
             map.put("a", jsonObject.getString("a"));
             map.put("b", jsonObject.getString("b"));
             list.add(map);
         }
         return list;
     }

 其中, map.put("a", jsonObject.getString("a"));中a代表json数据,json数据就不说了。。。。。

 

这样,从服务器上得到的json数据就成了我们熟悉的集合数据了。。。

上面的代码主要用到了两个类:JSONArrayJSONObject 

1
1
分享到:
评论

相关推荐

    android json请求的例子和jsp服务器的例子

    在android 上有时候需要通过json和服务器交换数据,但是有时没有服务器,不能真正的体会一下交换数据的过程. ...android端的例子包涵了发送json到服务器如何解析和接收json如何解析的内容 代码已经调试通过

    浅谈Android客户端与服务器的数据交互总结

    本文总结了Android客户端与服务器进行交互时,采用RESTful API +Json的交互方式,针对不同的数据形式以及不同的解析方法,如有不足之处,欢迎指正。 温馨提示:本文适合有一定Android开发经验的人阅读,如有疑问,...

    疯狂Android讲义源码

     TCP服务器端 478  13.1.3 使用Socket进行通信 479  13.1.4 加入多线程 483  13.2 使用URL访问网络资源 488  13.2.1 使用URL读取网络资源 489  13.2.2 使用URLConnection  提交请求 490  13.3 使用HTTP访问...

    传智播客Android视频教程-课程源码.rar

    本软件包含手机客户端和服务器端软件,服务器端软件基于javaee技术构建,主要用于为客户端提供数据、接收客户端上传数据和管理数据。本软件可以进行二次定做,基础价为15万,如需额外功能,价格面议,欲购此软件的...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    疯狂Android讲义.part2

    服务器端 478 13.1.3 使用Socket进行通信 479 13.1.4 加入多线程 483 13.2 使用URL访问网络资源 489 13.2.1 使用URL读取网络资源 489 13.2.2 使用URLConnection提交 请求 491 13.3 使用HTTP访问网络 496 13.3.1 使用...

    疯狂Android讲义.part1

    服务器端 478 13.1.3 使用Socket进行通信 479 13.1.4 加入多线程 483 13.2 使用URL访问网络资源 489 13.2.1 使用URL读取网络资源 489 13.2.2 使用URLConnection提交 请求 491 13.3 使用HTTP访问网络 496 13.3.1 使用...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

Global site tag (gtag.js) - Google Analytics