[Android] Json格式解析和文字图片传输

博客分类:  Android  

json串拼写 key=关键字 value=值  例:登陆串

 

Java代码  
  1. userString = "eche.lau@gmail.com";  
  2. password = "111111";  
  3. JSONStringer userInfo = new JSONStringer().object()  
  4.                     .key("email").value(userString)  
  5.                                         .key("password").value(password).endObject();  
  6.   
  7. JSONStringer json = new JSONStringer().object().key("request").value(userInfo).endObject();  

 拼写完成的格式是:

 

{
    request => {
                          :email => "eche.lau@gmail.com",
                          :password => "111111"
                      }
}

 

发送json格式请求方法

 

Java代码  
  1. public static JSONObject getJsonRequest(String url, Object json) {  
  2.   
  3.         HttpPost request = new HttpPost(url);  
  4.         String retSrc = null;  
  5.         JSONObject result = null;  
  6.         try {  
  7.             StringEntity se = new StringEntity(json.toString(), HTTP.UTF_8);  
  8.                         //设置类型 编码  
  9.             se.setContentType("application/json;charset=UTF-8");  
  10.             se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,  
  11.                     "application/json;charset=UTF-8"));  
  12.             request.setEntity(se);  
  13.             // 发送请求  
  14.             HttpResponse httpResponse = new DefaultHttpClient()  
  15.                     .execute(request);  
  16.             // 得到应答的字符串  
  17.             retSrc = EntityUtils.toString(httpResponse.getEntity());  
  18.             // 生成 JSON 对象  
  19.             result = new JSONObject(retSrc);  
  20.         } catch (Exception e) {  
  21.             e.printStackTrace();  
  22.         }  
  23.         return result;//返回json对象  
  24.     }  
 

得到返回json对象并且解析

Java代码  
  1. userRequest = getJsonRequest(Const.URL  
  2.                     + "/sign_in.json", json);  
  3.   
  4. int status=userRequest.getInt("status");//获取返回状态数字  
  5. JSONObject user = userRequest.getJSONObject("user");  
  6. int userId = user.getInt("id");//解析int格式  
  7. String nickName = user.getString("nickname");//解析string格式  

 返回格式是:

 

{
     :status => 200,

     :user => {

                         :id => 8,
                         :nickname => "逐风林羽",
                    }

}

还有数据类型:

JSONArray users = data.getJSONArray("users");

for (int i = 0; i < users.length(); i++) {

JSONObject user = users.getJSONObject(i);

//然后再向上个例子一样解析user串

}

 

传输bitmap图片

Java代码  
  1. public static JSONObject UpLoadRes(String url,String param,File bitmap ){  
  2.         String retSrc = null;  
  3.         JSONObject result = null;           
  4.         //设置要访问的地址  
  5.         HttpPost httpRequestHttpPost = new HttpPost(url);  
  6.          MultipartEntity multipartEntity = new MultipartEntity(  
  7.                  HttpMultipartMode.BROWSER_COMPATIBLE, null, Charset.forName(HTTP.UTF_8));  
  8.             ContentBody contentBody = new FileBody(bitmap, "image/jpg");             
  9.              try {  
  10.                 String newStr = new String(param.getBytes(), "UTF-8");  
  11.                 //添加内容  
  12.                 multipartEntity.addPart("email",new StringBody("eche.lau@gmail.com"));  
  13.                 multipartEntity.addPart("request",new StringBody(newStr, Charset.forName(HTTP.UTF_8)));  
  14.                   multipartEntity.addPart("res", contentBody);  
  15.                 //把要传输的内容放到请求里面  
  16.                 httpRequestHttpPost.setEntity(multipartEntity);  
  17.                 //创建客户端对象  
  18.                 HttpClient  httpClient = new DefaultHttpClient();  
  19.                 //执行请求并得到返回结果  
  20.                 HttpResponse httpResponse = httpClient.execute(httpRequestHttpPost);  
  21.                 retSrc = EntityUtils.toString(httpResponse.getEntity());  
  22.                 // 生成 JSON 对象  
  23.                 result = new JSONObject(retSrc);  
  24.             } catch (ClientProtocolException e) {  
  25.                 // TODO Auto-generated catch block  
  26.                 e.printStackTrace();  
  27.             } catch (IOException e) {  
  28.                 // TODO Auto-generated catch block  
  29.                 e.printStackTrace();  
  30.             } catch (JSONException e) {  
  31.                 // TODO Auto-generated catch block  
  32.                 e.printStackTrace();  
  33.             }  
  34.         return result;  
  35.     }  

 

 

更多相关文章

  1. Android(安卓)原生 MediaPlayer 和 MediaCodec 的区别和联系(二)
  2. Android(安卓)StageFrightMediaScanner源代码解析
  3. Android中文API(130) —— Html
  4. Android(安卓)Launcher manifest解析
  5. Android(安卓)NDK 入门开发例子(一)
  6. Android(安卓)UI 学习
  7. Android(安卓)providers 解析之telephony
  8. 解析Android消息处理机制:Handler/Thread/Looper & MessageQueue
  9. 解析Android消息处理机制:Handler/Thread/Looper & MessageQueue

随机推荐

  1. Launcher开发笔记4—壁纸
  2. Android Studio基础之项目目录结构(四)-
  3. Android 运行出错
  4. 【Android】Android Clean Architecture
  5. Android OpenGL例子学习
  6. Android使用百度地图SDK获得当前设备位置
  7. Android逆向分析常用网站
  8. Linux系统Android SDK 下载版本,报错Warni
  9. android(2.0以后版本) 中读取联系人和通
  10. 更新SDK后eclipse报错This Android SDK r