获取重要气象台数据 并解析

项目要用到json解析,写了一个demo,从中央气象台获取json数据并解析到本地。记录一下。

联网获取数据逻辑:

private void loadData(){
		Log.d("wlj", "loadData >>>>> ");
		HttpParams params=new BasicHttpParams();
	    //设置连接超时或响应超时
	    HttpConnectionParams.setConnectionTimeout(params, 5000);
	    HttpConnectionParams.setSoTimeout(params, 5000);
		HttpClient client = new DefaultHttpClient(params);
		HttpGet request = new HttpGet("http://m.weather.com.cn/data/101280601.html");
		HttpResponse response;
		InputStream is;
		try {
			response = client.execute(request);
			if(HttpStatus.SC_OK == response.getStatusLine().getStatusCode()){
				is = response.getEntity().getContent();
				json(is);
			}else{
				Log.d("wlj", "获取网络数据失败 ... ");
			}
		} catch (ClientProtocolException e) {
			Log.d("wlj", "ClientProtocolException ... ");
			e.printStackTrace();
		} catch (IOException e) {
			Log.d("wlj", "IOException ... ");
			e.printStackTrace();
		}finally{
			client.getConnectionManager().shutdown();
		}
	}

json数据解析逻辑:

private void json(InputStream is){
		JsonReader reader = null;
		try {
			reader = new JsonReader(new InputStreamReader(is, "UTF-8"));
			reader.beginObject();
			if(reader.nextName().equalsIgnoreCase("weatherinfo")){
				reader.beginObject();
				while(reader.hasNext()){
					String name = reader.nextName();
					if(name.equalsIgnoreCase("city_en")){
						Log.d("wlj", "city is " + reader.nextString());
					}else if(name.equalsIgnoreCase("temp5")){
						Log.d("wlj", "temp5 is " + reader.nextString());
					}else if(name.equalsIgnoreCase("index_d")){
						Log.d("wlj", "index_d is " + reader.nextString());
					}else{
						reader.skipValue();
					}
				}
				reader.endObject();
			}
			reader.endObject();
		} catch (IOException e) {
			Log.d("wlj", "parse reader IOException ... ");
			e.printStackTrace();
		}finally{
			try {
				if(is != null) is.close();
				if(reader != null) reader.close();
			} catch (IOException e) {
				Log.d("wlj", "close reader IOException ... ");
				e.printStackTrace();
			}
		}

	}

从json的解析逻辑可以看出,json解析逻辑和服务端返回的数据格式关联很大,需要按照服务端定义的格式一一对应。

时间: 2024-10-11 10:04:40

获取重要气象台数据 并解析的相关文章

HttpClient获取第三方接口数据以及解析获取json

初到公司实习,需要通过http post获取第三方接口返回的json数据并解析json数组获取value @RequestMapping("/getProductName")@ResponseBodypublic ArrayList getProductName(HttpServletRequest request) throws Exception { HttpPost httpPost = new HttpPost("");    CloseableHttpCl

Python 获取接口数据,解析JSON,写入文件

Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而且python看起来更直观一些: 以下是代码: import types import urllib2 import json duan ="--------------------------" #在控制台断行区别的 #利用urllib2获取网络数据 def registerUrl():

android通过httpClient请求获取JSON数据并且解析

android通过httpClient请求获取JSON数据并且解析:http://www.cnblogs.com/gzggyy/archive/2013/05/08/3066288.html Android--使用Http向服务器发送请求并取得返回结果,下载图片:http://www.2cto.com/kf/201307/229489.html Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据):http://blog.csdn.net/he

CGI原理解析系列之一----CGI如何获取WEB服务器数据

//gcc get_post.c -o get_post.ums; #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> int main(int argc,char *argv[]) { size_t i = 0,n = 0; printf("Content-Type:text/plain\n\n"); char * method =

网络爬虫模拟登陆获取数据并解析实战(二)

目录 分析要获取的数据 程序的结构 构建封装数据的model 模拟登陆程序并解析数据 结果展示 分析要获取的数据 下面继续实战,写一个模拟登陆获取汽车之家,用户信息的程序.如果大家对模拟登陆获取数据不太了解,建议看完http://blog.csdn.net/qy20115549/article/details/52249232,我写的这篇含有抓包获取人人网数据的案例程序,研究透之后,再来看这个要轻松很多. 首先,大家打开汽车之家这个网站(http://i.autohome.com.cn/7741

用andtoid studio获取天气数据并解析适配

1.申请拿到数据 可以用“聚合数据” 2.在android studio中导入需要的jar包 复制—>app—>libs—>粘贴—>右击—>Add As Library……—>选择model—>ok 此项目所用的jar包建议: fastjson xUtils(访问部分可用异步任务jar包代替) 3.网络权限 <uses-permission android:name="android.permission.INTERNET"><

C# 解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市

百度天气 接口地址:http://api.map.baidu.com/telematics/v3/weather?location=上海&output=json&ak=hXWAgbsCC9UTkBO5V5Qg1WZ9,其中ak是密钥,自行去申请即可,便于大家测试,楼主就公布并了自己的Key,这样可以直接获取到数据. 获取到的数据是这样的: {"error":0,"status":"success","date"

XML数据的解析

相比于JSON数据解析而言,XML数据解析可能会让更多的童鞋感觉到吃力,对我来说,同样认为JSON数据好像让人感觉比较友好,不过对于程序开发者来说,无非就是这两种数据解析占比较大的部分,其中JSON数据占80%,而XML只占到20%,虽然大部分还是JSON的天下,但我们也不能掉以轻心,不能忽略这20%的XML,听完今天老师的课程,我做了如下总结,更多总结见我个人博客. 下面给大家看两个图片,这两个图片就是传说中的JSON和XML数据,要对他们进行解析,估计很多同仁都像我一样,第一眼看上去,哎呀妈

iOS开发网络篇—JSON数据的解析

iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim