核心代码:
InputStream is=conn.getInputStream();
Log.i(TAG,"得到输入流开始解析json,先将返回的结果转化为字符串并保存");
//定义streamtools工具类将api返回的数据用字符集保存下来
StreamTools streamTools=new StreamTools();
String result=streamTools.readStream(is);
//创建josn对象,将字符集填充到json中
JSONObject jsonObject=new JSONObject(result);
String status=jsonObject.getString("status");
Log.i(TAG,status);
if ("200".equals(status)){
Log.i(TAG,"开始解析");
//获取json中名为"data"的json对象
JSONObject jsondata=jsonObject.getJSONObject("data");
//获取jason对象data中的json数组"forecast"
JSONArray list=jsondata.getJSONArray("forecast");
//取出json数组中的第一个json对象
// JSONObject today=(JSONObject) list.getJSONObject(0);
// JSONObject tomorrow=(JSONObject) list.getJSONObject(1);
//将取出的对象使用handler发送给主程序
Message msg=Message.obtain();
msg.what=1;
msg.obj=list;
handler.sendMessage(msg);
重点方法:
创建json对象:JSONObject jsonobject=new JSONObjcet(传入字符集)
获取json中的内容:
1、获取json中的json:
JSONObject jo=josnobject.getJSONObject(传入该json的key值)
2、获取josn中的value:
String result=jsonobject.getString(传入对应的key值)
3、获取josn中的数组:
JsonArray list=jsonobject.getJSONArray(传入对应的key值)