Json解析国家气象局天气API
JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(StandardECMA-262 3rd Edition - December 1999)的一个子集。
JSON概念很简单,就是服务器直接生成Javascript语句,客户端获取后直接用eval方法来获得这个对象,这样就可以省去解析XML的性损失。
例如:中国气象局的天气API:http://www.weather.com.cn/data/cityinfo/101040100.html 就是一个Json格式。
{"weatherinfo":{"city":"重庆", "cityid":"101040100", "temp1":"29℃", "temp2":"19℃", "weather":"晴转多云", "img1":"d0.gif", "img2":"n1.gif", "ptime":"11:00"} }
1.HttpUrlConnection连接
URL url = new URL(strUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); InputStream is = conn.getInputStream(); // 获取输入流 byte[] data = readStream(is); // 把输入流转换成字符数组 strResult = new String(data); // 把字符数组转换成字符串
2.如何解析Json格式的数据
JSONObject jsonObj = new JSONObject(strResult).getJSONObject("weatherinfo"); hightemp = jsonObj.getString("temp1"); lowtemp = jsonObj.getString("temp2"); city_ = jsonObj.getString("city"); date_y = jsonObj.getString("ptime"); weather = jsonObj.getString("weather"); wea_img = jsonObj.getString("img1"); wea_img_n = jsonObj.getString("img2");
3.Json数据格式与Xml格式的比较
·可读性 JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。
·可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
·编码难度 XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不 借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
·解码难度 XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
·流行度 XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。