聚合数据android天气预报json的读取

前几天一直在做一个简单的android的简单的天气预报,但是在解析json的时候遇到一些问题,因为之前没有接触过json,所以这次做得时候首先查看了json的相关知识:

首先、服务器端项目要导入json的jar包和json所依赖的jar包至builtPath路径下(这些可以到JSON-lib官网下载:http://json-lib.sourceforge.net/

android的json解析部分都在包org.json下,主要有以下几个类: 

JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值。它对外部(External:   应用toString()方法输出的数值)调用的响应体现为一个标准的字符串(例如:{"JSON": "Hello, World"},最外被大括号包裹,其中的Key和Value被冒号":"分隔)。其对于内部(Internal)行为的操作格式略微,例如:初始化一个JSONObject实例,引用内部的put()方法添加数值:new JSONObject().put("JSON", "Hello, World!"),在Key和Value之间是以逗号","分隔。Value的类型包括:Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULL object 。

JSONArray:它代表一组有序的数值。将其转换为String输出(toString)所表现的形式是用方括号包裹,数值以逗号”,”分隔(例如:  [value1,value2,value3],大家可以亲自利用简短的代码更加直观的了解其格式)。这个类的内部同样具有查询行为, get()和opt()两种方法都可以通过index索引返回指定的数值,put()方法用来添加或者替换数值。同样这个类的value类型可以包括:Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULL object。

json主要就是json对象和json数组之间的转换;

 

下面就开始解析 聚合数据 天气预报的数据了(我解析的是 某地 第二天的天气):

JSONObject jsonobject= new JSONObject(jsonData);
    		JSONObject result = jsonobject.getJSONObject("result");
    		JSONObject data = result.getJSONObject("data");
    		
    		String weather = data.getString("weather");
    		JSONArray jsonArray = new JSONArray(weather);
    		
	        JSONObject jsonObject = jsonArray.getJSONObject(1);
	        
	        JSONObject info2 = jsonObject.getJSONObject("info");
	        
			date = jsonObject.getString("date");
			info =  info2.getString("day");
			
		
			String [] stringArr= info.split(",");  //注意分隔符是需要转译滴...
			
			temp1 = stringArr[0];
			weather1 = stringArr[1];
			temp2 = stringArr[2];

 

posted @ 2014-12-23 13:02  Rui.peng  阅读(1467)  评论(0编辑  收藏  举报