工欲善其事,必先利其器。先给大家介绍3个我在做腾讯微博客户端开发过程中用到的3个工具

1:一个是sqllite的数据库管理工具,http://www.sqliteexpert.com/download.html

2:腾讯API测试工具http://open.t.qq.com/resource.php?i=3,4

3:腾讯API返回的都是json和xml的数据格式,在手机上一般用json,这是一个json字符串分析工具。



把返回的字符串贴在viewer中:



点击第一个Tab,

Java代码
  1. json数据格式解析我自己分为两种;
  2. 一种是普通的,一种是带有数组形式的;
  3. 普通形式的:
  4. 服务器端返回的json数据格式如下:
  5. {"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}}
  6. 分析代码如下:
  7. //TODO状态处理500200
  8. intres=0;
  9. res=httpClient.execute(httpPost).getStatusLine().getStatusCode();
  10. if(res==200){
  11. /*
  12. *当返回码为200时,做处理
  13. *得到服务器端返回json数据,并做处理
  14. **/
  15. HttpResponsehttpResponse=httpClient.execute(httpPost);
  16. StringBuilderbuilder=newStringBuilder();
  17. BufferedReaderbufferedReader2=newBufferedReader(
  18. newInputStreamReader(httpResponse.getEntity().getContent()));
  19. Stringstr2="";
  20. for(Strings=bufferedReader2.readLine();s!=null;s=bufferedReader2
  21. .readLine()){
  22. builder.append(s);
  23. }
  24. Log.i("cat",">>>>>>"+builder.toString());
  25. JSONObjectjsonObject=newJSONObject(builder.toString())
  26. .getJSONObject("userbean");
  27. StringUid;
  28. StringShowname;
  29. StringAvtar;
  30. StringState;
  31. Uid=jsonObject.getString("Uid");
  32. Showname=jsonObject.getString("Showname");
  33. Avtar=jsonObject.getString("Avtar");
  34. State=jsonObject.getString("State");
  35. 带数组形式的:
  36. 服务器端返回的数据格式为:
  37. {"calendar":
  38. {"calendarlist":
  39. [
  40. {"calendar_id":"1705","title":"(\u4eb2\u5b50)ddssd","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288927800","endshowtime":"1288931400","allDay":false},
  41. {"calendar_id":"1706","title":"(\u65c5\u884c)","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288933200","endshowtime":"1288936800","allDay":false}
  42. ]
  43. }
  44. }
  45. 分析代码如下:
  46. //TODO状态处理500200
  47. intres=0;
  48. res=httpClient.execute(httpPost).getStatusLine().getStatusCode();
  49. if(res==200){
  50. /*
  51. *当返回码为200时,做处理
  52. *得到服务器端返回json数据,并做处理
  53. **/
  54. HttpResponsehttpResponse=httpClient.execute(httpPost);
  55. StringBuilderbuilder=newStringBuilder();
  56. BufferedReaderbufferedReader2=newBufferedReader(
  57. newInputStreamReader(httpResponse.getEntity().getContent()));
  58. Stringstr2="";
  59. for(Strings=bufferedReader2.readLine();s!=null;s=bufferedReader2
  60. .readLine()){
  61. builder.append(s);
  62. }
  63. Log.i("cat",">>>>>>"+builder.toString());
  64. /**
  65. *这里需要分析服务器回传的json格式数据,
  66. */
  67. JSONObjectjsonObject=newJSONObject(builder.toString())
  68. .getJSONObject("calendar");
  69. JSONArrayjsonArray=jsonObject.getJSONArray("calendarlist");
  70. for(inti=0;i<jsonArray.length();i++){
  71. JSONObjectjsonObject2=(JSONObject)jsonArray.opt(i);
  72. CalendarInfocalendarInfo=newCalendarInfo();
  73. calendarInfo.setCalendar_id(jsonObject2.getString("calendar_id"));
  74. calendarInfo.setTitle(jsonObject2.getString("title"));
  75. calendarInfo.setCategory_name(jsonObject2.getString("category_name"));
  76. calendarInfo.setShowtime(jsonObject2.getString("showtime"));
  77. calendarInfo.setEndtime(jsonObject2.getString("endshowtime"));
  78. calendarInfo.setAllDay(jsonObject2.getBoolean("allDay"));
  79. calendarInfos.add(calendarInfo);
  80. }
  81. 总结,普通形式的只需用JSONObject,带数组形式的需要使用JSONArray将其变成一个list。

http://helloandroid.iteye.com/blog/1130952

更多相关文章

  1. Android源码(9) --- Binder(3) AIDL使用
  2. android获取网络图片的用法 BitmapFactory.decodeByteArray 返回
  3. Android(安卓)压缩网络上的图片BitmapFactory.decodeStream()返
  4. android 去锯齿
  5. Android(安卓)- 第二章 Activity 探究
  6. Android开发经验之获取画在画布上的字符串长度、宽度(所占像素宽
  7. android 屏幕触摸事件的分发与处理
  8. 2011年沈大海讲师Android的腾讯微博客户端源代码,实现oauth_verif
  9. android学习—— context 和 getApplicationContext()

随机推荐

  1. 年轻人你渴望力量吗 | 我读过的一些书推
  2. 百度大规模战略性混部系统演进
  3. 新型冠状病毒来袭,非典期间的一段回忆
  4. 大数据独角兽 MapR 难以为继,将资产出售给
  5. MySQL8.0发布,你熟悉又陌生的Hash Join?
  6. 在计量实证中常见操作问题小结,计量经济圈
  7. 如果你在准备面试,好好看看这130道题
  8. 如何构建一个完整的To B应用开发平台
  9. 《世界前200名顶尖计量经济学家》,计量经
  10. 2020年要做的几件大事