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。
posted @ 2013-10-16 15:05  wesley.du  阅读(2544)  评论(0编辑  收藏  举报