[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 StageFrightMediaScanner源代码解析
  2. Android地图添加标记和文字【代码片段】
  3. Android中imageView图片放大缩小及旋转功能示例代码
  4. Android中代码混淆
  5. Android绘制文本对象FontMetrics介绍及繪製文本
  6. 代码实现android手机信号监听
  7. Android环形进度条(安卓默认形式)实例代码
  8. Android Studio(十一):代码混淆及打包apk
  9. Android APK瘦身之Android Studio Lint (代码审查)

随机推荐

  1. Android(安卓)ListView元素间隙线自定义
  2. Android读写XML(下)――创建XML文档
  3. 菜单 Android(安卓)Menu
  4. Simple Guide for Porting Android(安卓)
  5. android命令行下创建虚拟设备avd
  6. Android(安卓)ThreadLocal及InheritableT
  7. Android(安卓)资源简介(四) ClipDrawable
  8. Android获取webView快照与屏幕截屏的方法
  9. 自定义android的tab样式
  10. Android进程与线程的概念