热门IT资讯网

解析json获取天气信息(中央气象台)

发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,private String b;new Thread(new Runnable() {public void run() {String a= connServerForResult("http:/
  1. private String b;
  2. new Thread(new Runnable() {
  3. public void run() {
  4. String a= connServerForResult("http://m.weather.com.cn/data/101090101.html");
  5. final String v= "石家庄?"+parseJson(a);
  6. System.out.println("zheliv"+v);
  7. tq.post(new Runnable(){
  8. public void run(){
  9. tq.setText(v.replace("?","\n"));
  10. System.out.println("zheliv"+v);
  11. }});}}).start();}
  12. private String connServerForResult(String strUrl) {
  13. //获取HttpGet对象
  14. HttpGet httpRequest = new HttpGet(strUrl);
  15. String strResult = "";
  16. try {
  17. // HttpClient对象
  18. HttpClient httpClient = new DefaultHttpClient();
  19. // 获得HttpResponse对象
  20. HttpResponse httpResponse = httpClient.execute(httpRequest);
  21. if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
  22. // 取得返回的数据
  23. strResult = EntityUtils.toString(httpResponse.getEntity());
  24. System.out.println("zheli");
  25. }
  26. } catch (ClientProtocolException e) {
  27. e.printStackTrace();
  28. } catch (IOException e) {
  29. e.printStackTrace();
  30. }
  31. Log.i("Infor", strResult);
  32. return strResult; //返回结果
  33. }
  34. //对于返回的结果我们通过Json解析工具进行解析。下面是解析函数的代码,其参数就是要解析的Json格式数据字符串。
  35. private String parseJson(String strResult) {
  36. try {
  37. JSONObject jsonObj = new JSONObject(strResult).getJSONObject("weatherinfo");
  38. b =jsonObj.getString("temp1"); //当前日期
  39. //dayofweek= jsonObj.getString("week"); //当前星期
  40. //city.setText(jsonObj.getString("city")); //城市名称
  41. //ftime= jsonObj.getInt("fchh"); //更新时间(整点)【更新时间确定temp1属于哪天】
  42. //由于数据较多此处省略了部分代码,其他数据解析方法相同,大家可以照葫芦画瓢。
  43. System.out.println("zhelinn");
  44. } catch (JSONException e) {
  45. Log.i("Erorr","Json parse error");
  46. e.printStackTrace();}
  47. System.out.println("zheli v"+b);
  48. return b;
  49. }}
  50. //时间紧张,就读取了一个字符串,其他雷同
0