浅谈json的封装和解析

2015-08-09 13:43 评论 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();
   }

 

当前文章价值1.54元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://www.teachcourse.cn/292.html ,谢谢支持!

资源分享

分类:Android 标签:
harmony初步学习自定义组件 harmony初步学习自定义组件
选择排序算法 选择排序算法
初始化布局带inflate方法指定父容器的作用 初始化布局带inflate方法指定父容
关于Android app的launcher图标更换后,仍然显示默认的ic_launcher图标的解决方法 关于Android app的launcher图标