zoukankan      html  css  js  c++  java
  • 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。
  • 相关阅读:
    Node.js中exports与module.exports的区别
    Node js : Best way to define entity class
    使用 mongodb 的 Docker Image 快速上手系列 lab
    CreateFont函数为什么改变不了字体?该怎么解决
    docker service ps打印出来的错误信息被截断了怎么办?
    Docker for windows可用性检查
    Express application generator的使用
    Docker: 如何将node.js的项目部署到docker的swarm上面去
    Docker worker nodes shown as “Down” after re-start
    Docker创建虚机和swarm
  • 原文地址:https://www.cnblogs.com/lovejoy/p/3372295.html
Copyright © 2011-2022 走看看