zoukankan      html  css  js  c++  java
  • 简单说一下 JSON和JSONP

    JSON和JSONP,但从缩写看,可能会以为他们是很相似的两个名词,但他们除了缩写相似外,他们是两种类型的概念。

    首先:

      JSONJavaScript Object Notation)即JavaScript对象表示法,是一种轻量级的数据交换格式,注意:JSON是数据格式,也就是用来保存数据用的,

      JSONP(JSON with Padding) 是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题,即是一种非官方跨域数据交互协议。

      举例说明:我们拿最近比较火的谍战片来打个比方,JSON是地下党们用来书写和交换情报的“暗号”,而JSONP则是把用暗号书写的情报传递给自己同志时使用的接头方式。看到没?一个是描述信息的格式,一个是信息传递双方约定的方法。

    其次:这里单独说一些JSON

    JSON的特点:

    JSON 是存储和交换文本信息的语法。类似 XML。

    JSON 比 XML 更小、更快,更易解析。

    类似 XML

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

    相比 XML 的不同之处

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

    JSON 语法规则

    JSON 语法是 JavaScript 对象表示法语法的子集。

    • 数据在名称/值对中
    • 数据由逗号分隔
    • 花括号保存对象
    • 方括号保存数组

    废话不多说,用一个简单的实例说明一下JSON的格式:

    这里定义了多个朋友信息,数组名:goodfriends   ,包含三个对象(花括号的内容) ,每个对象又有三个属性(name,hobby,age)

    var goodfriends=[
             { 
                  "name" :"Tom",
                  "hobby":"Running",    
                 "age":24   
             },
             { 
                  "name" :"John",
                  "hobby":"laughing", 
                 "age":19   
             },
             { 
                  "name" :"Divid",
                  "hobby":"Badminton", 
                 "age":20   
             },   
    ]                        
    

     再次,介绍JSONP,前面说了,JSONP是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题,即是一种非官方跨域数据交互协议。

    因为Ajax直接请求普通文件存在跨域文件没有权限访问的问题,由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通。而 HTML 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。

  • 相关阅读:
    Python标准库--abc模块
    Python标准库--argparse模块
    爬虫基础
    jQuery基础
    前端基础之javascript
    web前端之HTML
    MySQL常用语句
    多线程和多进程
    socket网络编程
    异常处理
  • 原文地址:https://www.cnblogs.com/olive987/p/5793505.html
Copyright © 2011-2022 走看看