json和jsonp区别

json和jsonp区别

jsonjsonp
一种数据交换格式一种非官方跨域数据交互协议

json

1.json格式
json可以支持以下几种数据格式,由于前面三种在对象和数组两种格式中体现,所以重点介绍两种:
1.数字(整数或浮点数)
2.字符串(在双引号中)
3.逻辑值(true 或 false)
4.数组(在中括号中)
5.对象(在大括号中)

(1).对象格式--------{key:value}

例子:
1.一个对象
var person={
	name:'syj', //字符串
	age:18, //数值
	sex:'女',
	isLearning:true, //布尔
}
2.多个对象
var company={
  {name:'腾讯',address:'北京'},
  {name:'阿里巴巴',address:'深圳'}
}

(2).数组格式---------[{key1:value1},{key2:value2}]

例子:
var arr=[
  {name:'腾讯',address:'北京'},
  {name:'阿里巴巴',address:'深圳'}
]
json数据接收

有时候我们在传输数据的时候会遇到数据是一个对象的形式,所以我们需要将json数据先转换成字符串,然后在接收的时候再解析成对象的格式
1.将对象格式转换成字符串格式

JSON.stringify(value[, replacer[, space]])

参数说明:
value : 必需, 一个有效的 JSON 对象。
replacer : 可选。用于转换结果的函数或数组。

例子:
var arr = [ "syj", "yjh", "sjm", "kcl" ];
var myJSON = JSON.stringify(arr);
myJSON 为字符串。

2.将字符串解析成对象格式

JSON.parse(text[, reviver])

参数说明:
text : 必需, 一个有效的 JSON 字符串。
reviver : 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。

var myJSON='[ "syj", "yjh", "sjm", "kcl" ]'
JSON.parse(myJSON)

jsonp

1.用途

由于浏览器存在同源策略机制,只允许请求当前源(域名、协议、端口)的资源,为了实现跨域请求,可以通过script标签实现跨域请求,然后在服务端输出JSON数据并执行回调函数,从而可以解决跨域的数据请求。

2.原理
 1)在客户端注册一个callback, 然后把callback的名字传给服务器;
 2)服务端成 json 数据;
 3)服务端以 javascript 语法的方式,生成一个function , function名字就是参数jsonp中定义的名字;
 4)服务端最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端;
 5)客户端浏览器解析script标签,并执行返回的 javascript 文档,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里(动态执行回调函数)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值