聚合数据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];
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。