推荐安卓开发神器(里面有各种UI特效和android代码库实例)
客户端向服务器端发送数据,这里用到了两种,一种是在url中带参数,一种是json数据发送方式;
url带参数的写法:
url+/?r=m/calendar/contact_list&uid=3&&subscriptionslist[pageindex]=10&subscriptionslist[recordlimit]=10
从“&”符号之后一连串都是参数。
发送方式代码编写"
DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(HttpUtil.BASIC_URL + HttpUtil.SUBSCRIPTION_URL); try{ if (cookie != null) { // httpClient.setCookieStore(LoginJsonUtil.cookie); List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2); nameValuePair.add(new BasicNameValuePair("uid", uid)); nameValuePair.add(new BasicNameValuePair("subscriptionslist[pageindex]", subscriptionslist_pageindex)); nameValuePair.add(new BasicNameValuePair("subscriptionslist[recordlimit]", subscriptionslist_recordlimit)); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
传递参数使用nameValuePair。
如果使用cookie的话,使用上段代码中注释掉的部分
httpClient.setCookieStore(LoginJsonUtil.cookie);
使用json数据格式发送信息向服务器端:
HttpClient httpClient = new DefaultHttpClient(); try { HttpPost httpPost = new HttpPost(BASIC_URL + url); List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(); JSONObject jsonObject = new JSONObject(); JSONObject jsonObject2 = new JSONObject(); jsonObject.put("uemail", userbean.getEmail()); jsonObject.put("password", userbean.getPassword()); jsonObject2.put("userbean", jsonObject); nameValuePair.add(new BasicNameValuePair("jsonString", jsonObject .toString())); Log.i("lifeweeker", jsonObject2.toString()); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
这里每个put的顺序我不清楚有没有规定,我是严格按照提供的前后顺序来组合json数据格式的。
前面我有用到android发送json数据;这里我想总结一下我用到的解析json数据格式的方式
json数据格式解析我自己分为两种;
一种是普通的,一种是带有数组形式的;
普通形式的:
服务器端返回的json数据格式如下:
{"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}}
分析代码如下:
// TODO 状态处理 500 200 int res = 0; res = httpClient.execute(httpPost).getStatusLine().getStatusCode(); if (res == 200) { HttpResponse httpResponse = httpClient.execute(httpPost); StringBuilder builder = new StringBuilder(); BufferedReader bufferedReader2 = new BufferedReader( new InputStreamReader(httpResponse.getEntity().getContent())); String str2 = ""; for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2 .readLine()) { builder.append(s); } Log.i("cat", ">>>>>>" + builder.toString()); JSONObject jsonObject = new JSONObject(builder.toString()) .getJSONObject("userbean"); String Uid; String Showname; String Avtar; String State; Uid = jsonObject.getString("Uid"); Showname = jsonObject.getString("Showname"); Avtar = jsonObject.getString("Avtar"); State = jsonObject.getString("State");
带数组形式的:
服务器端返回的数据格式为:
{"calendar": {"calendarlist": [ {"calendar_id":"1705","title":"(\u4eb2\u5b50)ddssd","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288927800","endshowtime":"1288931400","allDay":false}, {"calendar_id":"1706","title":"(\u65c5\u884c)","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288933200","endshowtime":"1288936800","allDay":false} ] } } 分析代码如下: // TODO 状态处理 500 200 int res = 0; res = httpClient.execute(httpPost).getStatusLine().getStatusCode(); if (res == 200) { HttpResponse httpResponse = httpClient.execute(httpPost); StringBuilder builder = new StringBuilder(); BufferedReader bufferedReader2 = new BufferedReader( new InputStreamReader(httpResponse.getEntity().getContent())); String str2 = ""; for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2 .readLine()) { builder.append(s); } Log.i("cat", ">>>>>>" + builder.toString()); JSONObject jsonObject = new JSONObject(builder.toString()) .getJSONObject("calendar"); JSONArray jsonArray = jsonObject.getJSONArray("calendarlist"); for(int i=0;i<jsonArray.length();i++){ JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i); CalendarInfo calendarInfo = new CalendarInfo(); calendarInfo.setCalendar_id(jsonObject2.getString("calendar_id")); calendarInfo.setTitle(jsonObject2.getString("title")); calendarInfo.setCategory_name(jsonObject2.getString("category_name")); calendarInfo.setShowtime(jsonObject2.getString("showtime")); calendarInfo.setEndtime(jsonObject2.getString("endshowtime")); calendarInfo.setAllDay(jsonObject2.getBoolean("allDay")); calendarInfos.add(calendarInfo); }
总结,普通形式的只需用JSONObject ,带数组形式的需要使用JSONArray 将其变成一个list。
相关推荐
在Android开发中,利用Socket发送Json数据是一种常见的网络通信方式,尤其在移动应用与服务器进行实时交互时。本文将深入探讨如何在Android中实现这一功能,包括Json数据格式的使用、Socket通信的基本原理以及实际的...
本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 首先,我们需要了解`Android WebView`。WebView是Android系统提供的一种组件,它能够加载并显示网页内容,就像是...
通过Gson库,我们能够轻松地处理JSON数据,无论是从网络接收,还是存储在本地。对于初学者来说,通过实践上述示例,可以更好地理解这些概念并应用于实际项目中。 以上就是关于“Android之json和gson数据解析最完整...
这个“android demo”显然是一个展示如何在Android平台上处理JSON数据、发送JSON字符串以及进行JSON解析的示例项目。下面将详细阐述相关知识点。 一、JSON基础知识 1. JSON格式:JSON采用键值对的形式存储数据,键...
本教程将聚焦于Android如何通过使用JSON数据格式与服务器(这里以JSP为例)进行通信。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于阅读和编写,同时对机器解析和生成也非常高效,因此在...
4. **接收响应**:服务器返回的响应也可能包含JSON数据。使用InputStream读取响应内容,然后通过Gson或org.json库解析成Java对象。 5. **文件上传**:在文件上传场景中,需要将文件转换为二进制流,然后作为请求的...
在提供的压缩包文件中,`android接收json字符串例子.rar`可能包含了一个Android项目示例,展示了如何在Android应用中发起HTTP请求并解析JSON数据。而`Struts2_JSON_Demo`可能是一个Struts2的项目,实现了返回JSON...
以`HttpURLConnection`为例,发送一个POST请求到服务端并携带JSON数据: ```java URL url = new URL("http://yourserver.com/api"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn....
本教程将详细讲解如何从Android客户端向Java后台发送请求,并接收返回的Json数据。 一、HTTP请求库的选择 在Android中,我们可以使用多种库来实现网络请求,如HttpURLConnection(原生API)、Volley、Retrofit、...
- Android端将JSON数据作为POST请求的Body发送。 - PHP端使用`file_get_contents("php://input")`读取POST数据,然后使用`json_decode()`解析JSON。 **四、PHP处理JSON数据** 在PHP中,我们依赖`json_encode()`和...
本教程将深入讲解如何在Android中对JSON数据进行封装和解析,以便于在应用程序中有效使用。 一、JSON基础知识 JSON是一种独立于语言的数据表示格式,它基于ECMAScript的一个子集。一个基本的JSON对象由键值对组成,...
5. **序列化与反序列化**:库内置了对JSON数据的序列化和反序列化支持,这意味着你可以直接传递Java对象作为请求参数或接收Java对象作为响应结果,无需手动处理JSON字符串。 6. **批处理请求**:对于需要同时发送多...
在Android中,我们通常使用`org.json`库或者Gson库来处理JSON数据。 1. **设置网络权限**: 在AndroidManifest.xml中,添加`<uses-permission>`标签以获取网络访问权限: ```xml <uses-permission android:name=...
2. **JSON数据解析**:客户端接收到服务器返回的JSON数据后,需要使用相应的库(如Gson或Jackson)来解析JSON字符串,转换为Java对象。这通常涉及将JSON数据映射到自定义的Java类上,以便于处理和展示。 3. **错误...
1. **Java服务端**:如果你使用Spring框架,可以很容易地接收和处理JSON数据。创建一个Controller: ```java @PostMapping("/data") public ResponseEntity<String> handleData(@RequestBody JSONObject requestJson...
在我们的案例中,主要关注的是接收服务器返回的JSON数据,因此http-mime可能用得较少。 实现步骤如下: 1. **添加依赖**:在Android项目中,需要在build.gradle文件中添加对应的依赖项,确保这些库能被项目所使用...
同时,也会介绍Android端如何发起HTTP请求,获取并解析服务器返回的JSON数据。 #### 二、Android客户端实现 ##### 2.1 权限配置 首先,在AndroidManifest.xml文件中需要添加必要的权限声明,以便允许应用访问网络...