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数据就成了我们熟悉的集合数据了。。。
上面的代码主要用到了两个类:JSONArray和JSONObject
相关推荐
在Android开发中,从服务器端获取JSON数据并进行解析是一项常见的任务,这涉及到网络通信、数据格式处理以及数据解析等多个方面。以下是对这一过程的详细解释: ### 一、从服务器端获取JSON数据 #### 1. 使用...
在Android应用开发中,客户端与服务器端的数据交互是不可或缺的一部分,JSON作为一种轻量级的数据交换格式,被广泛用于Android和服务器之间的通信。本教程将详细阐述Android客户端如何使用JSON进行数据交互,包括...
在Android开发中,获取服务器端的数据是常见的需求,特别是JSON格式的数据,因其轻量级、易解析的特性,被广泛应用于移动应用与后端服务之间的数据交换。本demo旨在展示如何在Android手机客户端通过WiFi连接服务器,...
在Android应用开发中,客户端与服务器端的数据交互是不可或缺的一部分,JSON(JavaScript Object Notation)作为轻量级的数据交换格式,被广泛应用于Android与服务器之间的通信。本篇将详细讲解如何在Android客户端...
总之,服务器端返回JSON数据是现代Web应用中常见的数据交互方式,涉及到服务器端的JSON序列化、HTTP响应配置,以及客户端的网络请求和JSON解析等多个环节。理解并掌握这一流程对于开发Java EE应用和Android应用至关...
### Android Http (Json) 服务器端和客户端通信详解 在当今移动互联网时代,客户端与服务器之间的数据交换变得至关重要。特别是对于Android应用开发而言,能够高效、安全地与服务器进行通信,是实现应用功能的关键...
【标题】基于PHP的Android应用服务器端管理系统是用于管理和控制Android应用程序的重要工具,它通过Json数据格式实现与Android客户端的高效通信。这个系统的核心在于利用PHP作为后端语言,构建一个能够处理Android...
在Android应用开发中,客户端与服务器之间的数据交互是...综上所述,Android客户端与服务器端的JSON数据交互涉及网络请求、JSON解析、异步处理等多个环节,开发者需要理解并掌握这些技术,以实现高效、安全的数据通信。
服务器端接收到请求后,使用相应的Action处理请求,将JSON数据解析为Java对象,存储到数据库或其他持久化存储中。 在实现这一过程时,需要注意以下几点: 1. 使用HTTPS协议确保通信的安全性,防止数据被窃取。 2. ...
文件"TestJsonServer"可能是一个Servlet服务器端的示例代码,演示如何处理HTTP请求并返回JSON数据。而"AndroidJson"可能是Android客户端的代码,展示如何构造HTTP请求,发送请求,以及解析接收到的JSON响应。在这些...