• JSON、JSONP、XML的区别


    这两天看jquery手册的时候看到了jsonp。发现手册把jsonp与json放在一起讲解了,所以想写篇文章 梳理一下这三者的关系。

    jsonp:

    jsonp是json的一种“使用模式”,可以让网页从别的域名(网站)获取资料,即跨域读取数据。

    因为同源策略所以当我们从不同的域访问数据时需要使用jsonp。同源策略是浏览器的安全功能。

    jsonp的核心则是动态的添加<script>标签来调用服务器的js脚本。

    看jsonp.html页面的代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script type="text/javascript">
        // 得到航班信息查询结果后的回调函数
        var flightHandler = function(data){
            alert('你查询的航班结果是:票价 ' + data.price + ' 元,' + '余票 ' + data.tickets + ' 张。');
        };
        // 提供jsonp服务的url地址(不管是什么类型的地址,最终生成的返回值都是一段javascript代码)
        var url = "http://flightQuery.com/jsonp/flightResult.aspx?code=CA1998&callback=flightHandler";
        // 创建script标签,设置其属性
        var script = document.createElement('script');
        script.setAttribute('src', url);
        // 把script标签加入head,此时调用开始
        document.getElementsByTagName('head')[0].appendChild(script);
        </script>
    </head>
    <body>
     
    </body>
    </html>
    

    json:

    json 是javascript对象表示法

    json是轻量级的数据交换格式

    json是独立于语音的

    json具有自我描述性,更容易理解

    json文本格式在语法上于创建JavaScript对象的代码是相同的,无需解释,JavaScript程序能够使用内建的eval()函数,用json数据生成原生的JavaScript对象。

    json语法是JavaScript的对象表示法语法的子集

    语法规则:

    • 数据在名称/值对中
    • 数据由逗号分隔
    • 大括号保存对象
    • 中括号保存数组
    {
    "sites": [
    { "name":"菜鸟教程" , "url":"www.runoob.com" }, 
    { "name":"google" , "url":"www.google.com" }, 
    { "name":"微博" , "url":"www.weibo.com" }
    ]
    }

    XML:

    XML是可扩展标记语言。是一门语言。XML被设计用来传输和存储数据。

    • XML 指可扩展标记语言(EXtensible Markup Language)。
    • XML 是一种很像HTML的标记语言。
    • XML 的设计宗旨是传输数据,而不是显示数据。
    • XML 标签没有被预定义。您需要自行定义标签。
    • XML 被设计为具有自我描述性。
    • XML 是 W3C 的推荐标准。
    <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
    </note>

    JSON与XML相同之处:

    • JSON 是纯文本
    • JSON 具有"自我描述性"(人类可读)
    • JSON 具有层级结构(值中存在值)
    • JSON 可通过 JavaScript 进行解析
    • JSON 数据可使用 AJAX 进行传输

    与 XML 不同之处

    • 没有结束标签
    • 更短
    • 读写的速度更快
    • 能够使用内建的 JavaScript eval() 方法进行解析
    • 使用数组
    • 不使用保留字

    为什么使用 JSON?

    对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:

    使用 XML

    • 读取 XML 文档
    • 使用 XML DOM 来循环遍历文档
    • 读取值并存储在变量中

    使用 JSON

    • 读取 JSON 字符串
    • 用 eval() 处理 JSON 字符串
  • 相关阅读:
    Containers vs Serverless:本质区别是什么?
    博云 x 某农商行 | 银行信息化运维系统升级的最佳实践
    兼容传统应用,蓄力边缘云——博云胖容器解决方案
    使用Bookinfo应用测试Kuma服务网格
    干货 | 博云基于OVS自研容器网络插件在金融企业的落地实践
    开源分布式事务中间件Seata使用指南
    调研 | 5种分布式事务解决方案优缺点对比
    Ambassador,云原生应用的“门神”
    容器网络插件那么多,博云为什么基于OVS深度自研?
    观察 | 边缘云计算的概念理解
  • 原文地址:https://www.cnblogs.com/hellogt/p/7248061.html
Copyright © 2020-2023  润新知