在这里支队返回数据解析,不做请求数据
第一种格式json解析
String jsonresult
=”{"showapi_res_code":0,"showapi_res_error":"","showapi_res_body":{"list":[{"ct":"2016-02-01
04:10:14.665","p0":"5.02","p90":"5.08","p93":"5.38","p97":"5.68","prov":"河南"}],"ret_code":0}}“;
数据解析需要第三方 json-lib-2.2.3-jdk15.jar(这是我用的版本)
JSONObject json = JSONObject.fromObject(jsonResult);
int i = json.getInt("showapi_res_code"); //获取返回数据中的json数据
if(json.getInt("showapi_res_code")!=0){
System.out.println(json);
}
//获取返回数据中的json数据
JSONObject result =
(JSONObject) json.get("showapi_res_body");
System.out.println(result+"============");
//获取数组list
JSONArray list =
result.getJSONArray("list");
System.out.println(list+"-------------------");
//list中获取第一个元素,即json
JSONObject lists =
list.getJSONObject(0);
System.out.println(lists+"++++++++++++++");
String ct =(String)
list.getJSONObject(0).get("ct");
System.out.println(ct+"--------------------");
System.out.println(jsonResult);
解析结果
第二种格式json解析
String jsonresult=“{"HeWeather data service
3.0":[{"basic":{"city":"故宫博物院","cnty":"中国","id":"CN10101010018A","lat":"116.39","lon":"39.91","update":{"loc":"2016-02-02
09:12","utc":"2016-02-02
01:12"}},"daily_forecast":[{"astro":{"sr":"07:22","ss":"17:33"},"cond":{"code_d":"101","code_n":"100","txt_d":"多云","txt_n":"晴"},"date":"2016-02-02","tmp":{"max":"4","min":"-7"},"wind":{"dir":"西北风","sc":"微风"}},{"astro":{"sr":"07:21","ss":"17:35"},"cond":{"code_d":"101","code_n":"101","txt_d":"多云","txt_n":"多云"},"date":"2016-02-03","tmp":{"max":"6","min":"-6"},"wind":{"dir":"西北风","sc":"微风"}},{"astro":{"sr":"07:20","ss":"17:36"},"cond":{"code_d":"100","code_n":"100","txt_d":"晴","txt_n":"晴"},"date":"2016-02-04","tmp":{"max":"3","min":"-6"},"wind":{"dir":"西北风","sc":"微风"}},{"astro":{"sr":"07:19","ss":"17:37"},"cond":{"code_d":"100","code_n":"100","txt_d":"晴","txt_n":"晴"},"date":"2016-02-05","tmp":{"max":"4","min":"-5"},"wind":{"dir":"西北风","sc":"微风"}},{"astro":{"sr":"07:18","ss":"17:38"},"cond":{"code_d":"100","code_n":"101","txt_d":"晴","txt_n":"多云"},"date":"2016-02-06","tmp":{"max":"5","min":"-5"},"wind":{"dir":"西北风","sc":"微风"}},{"astro":{"sr":"07:17","ss":"17:39"},"cond":{"code_d":"101","code_n":"100","txt_d":"多云","txt_n":"晴"},"date":"2016-02-07","tmp":{"max":"7","min":"-5"},"wind":{"dir":"西风","sc":"微风"}},{"astro":{"sr":"07:16","ss":"17:41"},"cond":{"code_d":"100","code_n":"101","txt_d":"晴","txt_n":"多云"},"date":"2016-02-08","tmp":{"max":"9","min":"-2"},"wind":{"dir":"西北风","sc":"微风"}}],"status":"ok"}]}”;
JSONObject json = JSONObject.fromObject(jsonResult);
JSONArray array =
json.getJSONArray("HeWeather data service
3.0");//获取到内一层数组 System.out.println(array);
JSONObject basic = (JSONObject)
array.get(0);//获取数组中第一个元素json System.out.println(basic);
JSONObject basicjson =
basic.getJSONObject("basic");//获取数组中第一个元素json的对应的json System.out.println(basicjson);
JSONObject update =
basicjson.getJSONObject("update");//basicjson中所包含的json System.out.println(update);
String city =
basicjson.getString("city");//根据key获取对应的值 System.out.println(city);
解析结果截图
原理都是一样的,就是一层一层的剥,一般json格式中只包含json,jsonArray这两种格式