JSON与JSONP

JSON是什么

JSON(  JavaScript Object Notation)JavaScript对象标记法, 是一种轻量级的数据交换格式,是一种存储和交换数据的语法。

交换数据

当数据在浏览器和服务器之间进行交换的时候,这些数据只能是文本。而JSON属于文本,我们可以把任何的JavaScript对象转化为JSON,然后将JSON发送至服务器,同时也可以将从服务器接收到的JSON转换为JavaScript对象。

JSON语法

JSON语法衍生于JavaScript对象标记法语法:
1.数据在名称/值对中
2.数据由逗号分隔
3.花括号容纳对象
4.方括号容纳数组

JSON数据-名称

名称/值由字段名称构成,后跟冒号和值:
"name":"catino"
JSON名称需要双引号,而JavaScript名称不需要。JSON键必须是字符串,由双引号包围,在 JavaScript 中,键可以是字符串( 使用双引号或单引号)、数字或标识符名称:。

JSON

{ "name":"Bill Gates" }

JavaScript

{ name:"Bill Gates" }

JSON数据-

在JSON中,值必须是:字符串、数字、对象(JSON对象)、数组、布尔、null
在JavaScript中除了上述值外,还有函数、日期、undefined

JSON VS XML​​​​​​​

JSON 和 XML 均可用于从 web 服务器接收数据。
JSON实例
{"employees":[
{ "firstName":"Bill", "lastName":"Gates" },
{ "firstName":"Steve", "lastName":"Jobs" },
{ "firstName":"Elon", "lastName":"Musk" }
]}

XML实例

<employees>
<employee>
<firstName>Bill</firstName>
<lastName>Gates</lastName>
</employee>
<employee>
<firstName>Steve</firstName>
<lastName>Jobs</lastName>
</employee>
<employee>
<firstName>Elon</firstName>
<lastName>Musk</lastName>
</employee></employees>
同:
  • JSON 和 XML 都是“自描述的”(人类可读的)
  • JSON 和 XML 都是分级的(值中有值)
  • JSON 和 XML 都能被大量编程语言解析和使用
  • JSON 和 XML 都能被 XMLHttpRequest 读取
异:
  • JSON 不使用标签
  • JSON 更短
  • JSON 的读写速度更快
  • JSON 可使用数组
  • XML 必须使用 XML 解析器进行解析。而 JSON 可通过标准的 JavaScript 函数进行解析。

发送数据---JSON.stringify()/接收数据--- JSON.parse()

JSON 的常规用途是同 web 服务器进行数据传输。在从 web 服务器接收/发送数据时,数据永远是字符串。通过 JSON.parse() 解析数据,这些数据会成为 JavaScript 对象。 过 JSON.stringify() 把 JavaScript 对象转换为字符串。
所有主流浏览器以及最新的 ECMAScript (JavaScript) 标准均包含 JSON.parse() / JSON.stringify()函数:

解析 JSON

var obj = JSON.parse('{ "name":"Bill Gates", "age":62, "city":"Seattle"}');

对 JavaScript 对象进行字符串化

var obj = { name:"Bill Gates", age:62, city:"Seattle"};
var myJSON = JSON.stringify(obj);

存储数据

在存储数据时,数据必须是某种具体的格式,文本(可以被任何编程语言作为数据来读取和使用)永远是合法格式之一。
存储数据:
myObj = { name:"catino", age:24, country:"China" };
myJSON = JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
接收数据:
text = localStorage.getItem("testJSON");
obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;

JSONP是什么

JSONP ( JSON with Padding)是一种无需考虑跨域问题即可传送 JSON 数据的方法。从另一个域请求文件会引起问题,由于跨域政策。从另一个域请求外部脚本没有这个问题。JSONP 利用了这个优势,并使用 script 标签替代 XMLHttpRequest 对象。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值