解析心知天氣API介面返回的json資料
阿新 • • 發佈:2019-02-16
json資料結構如下(北京今天和未來4天的預報)
心知天氣json資料型別說明原址:http://www.thinkpage.cn/doc#jsonp
{ "results": [{ "location": { "id": "WX4FBXXFKE4F", "name": "北京", "country": "CN", "path": "北京,北京,中國", "timezone": "Asia/Shanghai", "timezone_offset": "+08:00" }, "daily": [{ //返回指定days天數的結果 "date": "2015-09-20", //日期 "text_day": "多雲", //白天天氣現象文字 "code_day": "4", //白天天氣現象程式碼 "text_night": "晴", //晚間天氣現象文字 "code_night": "0", //晚間天氣現象程式碼 "high": "26", //當天最高溫度 "low": "17", //當天最低溫度 "precip": "0", //降水概率,範圍0~100,單位百分比 "wind_direction": "", //風向文字 "wind_direction_degree": "255", //風向角度,範圍0~360 "wind_speed": "9.66", //風速,單位km/h(當unit=c時)、mph(當unit=f時) "wind_scale": "" //風力等級 }, { "date": "2015-09-21", "text_day": "晴", "code_day": "0", "text_night": "晴", "code_night": "0", "high": "27", "low": "17", "precip": "0", "wind_direction": "", "wind_direction_degree": "157", "wind_speed": "17.7", "wind_scale": "3" }, { ... //更多返回結果 }], "last_update": "2015-09-20T18:00:00+08:00" //資料更新時間(該城市的本地時間) }] }
解析如下
JSONObject jsonObject = new JSONObject(response); //response為返回的String型json資料 JSONArray results = jsonObject.getJSONArray("results"); //得到鍵為results的JSONArray JSONObject location = results.getJSONObject(0).getJSONObject("location"); //得到results陣列第一個資料中鍵為location的JSONObject JSONObject updateTime = results.getJSONObject(0); //得到得到results陣列第一個資料 JSONArray daily = results.getJSONObject(0).getJSONArray("daily"); //得到results陣列第一個資料中鍵為daily的JSONArray JSONObject today = daily.getJSONObject(0); //得到daily中今天的天氣資料,即第一個 String cityName = location.getString("name"); //獲得城市名 String weatherCode = location.getString("id"); //獲得城市id String temp1 = today.getString("low"); //獲得最低溫度 String temp2 = today.getString("high"); //獲得最高溫度 String weatherDesp = today.getString("text_day"); //獲得天氣描述 String publishTime = updateTime.getString("last_update"); //獲得的更新時間
其中最操蛋的是results是隻有一個json物件的陣列,只有一個json物件你用個蛋的陣列裝著啊!!!浪費了幾個小時