浅谈json的封装和解析

2015-08-09 13:43 阅读 6,572 次 评论 0 条

第一种json数据的封装格式:

{

"data":{"Java":"Java开发","Android":"Android程序设计"},

"header":{"name":"飞腾博客","address":"https://www.teachcourse.cn"}

}

public StringEntity getEntity(){

JSONObject dataParams=new JSONObject();

dataParams.put("Java","Java开发");

dataParams.put("Android","Java程序设计");

 

JSONObject headerParams=new JSONObject();

headerParams.put("name","飞腾博客");

headerParams.put("address","https://www.teachcourse.cn");

 

JSONObject params=new JSONObject();

params.put("data",dataParams);

params.put("header",headerParams);

 

StringEntity entity=new StringEntity(params.toString());

return entity;

 

}

 

第二种json数据的封装格式:

{

"data":[{"Java":"Java开发","Android":"Android程序设计"}],

"header":[{"name":"飞腾博客","address":"https://www.teachcourse.cn"}]

}

public StringEntity getEntity(){

JSONArray dataArray=new JSONArray();

JSONObject dataParams=new JSONObject();

dataParams.put("Java","Java开发");

dataParams.put("Android","Java程序设计");

dataArray.put("data",dataParams);

 

JSONArray headerArray=new JSONArray();

JSONObject headerParams=new JSONObject();

headerParams.put("name","飞腾博客");

headerParams.put("address","https://www.teachcourse.cn");

headerArray("header",headerParams);

 

JSONObject params=new JSONObject();

params.put("data",dataArray);

params.put("header",headerArray);

 

StringEntity entity=new StringEntity(params.toString());

return entity;

 

}

 

接收服务器端返回来的数据,解析json数据

String jsonString=getStringByInputStream(InputStream is);

JSONObject json=new JSONObject(jsonString);

JSONObject data=json.getJSONObject("data");

String java=data.optString("Java");

String android=data.optString("Android");

 

private static String getStringByInputStream(InputStream is) {
  StringBuilder sb = new StringBuilder();
  try {
    BufferedReader reader = new BufferedReader(new InputStreamReader(
     is, "UTF-8"), 8 * 1024);

   String line = null;
   while ((line = reader.readLine()) != null) {
    sb.append(line + "n");
   }
  } catch (IOException e) {
   sb.delete(0, sb.length());
  } finally {
   try {
    is.close();
   } catch (IOException e) {
    
   }
  }

  return sb.toString();
   }

 

你可能感兴趣的文章

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ158#9359$239或公众号TeachCourse)
转载请注明出处: https://www.teachcourse.cn/292.html ,谢谢支持!

资源分享

分类:Android 标签:
Android学习笔记十二:Android基础知识 Android学习笔记十二:Android
添加网络打印机实际操作介绍 添加网络打印机实际操作介绍
APP签名的三种方式使用说明 APP签名的三种方式使用说明
浅谈Layout类 浅谈Layout类