JSON和JSONP是什么

JSON(JavaScript Object Notation)和JSONP(JSON with Padding)虽然表面上只有一个字母差别,实际上是两种不同的东西。JSON是一种数据交换格式,而JSONP是一种被开发人员创造出来的一种非官方的跨域数据交互协议。

JSON数据格式在前端开发这个领域用的比较多,其优点在于

  1. 基于纯文本,跨平台传递简单;
  2. JavaScript原生支持,后台语言几乎全部支持;
  3. 轻量级数据格式,占用字符数量极少,特别适合互联网传递;
  4. 可读性较强;
  5. 容易编写和解析;

JSON实例
var person = { "Name": "Bob", "Age": 32, "Company": "IBM", "Engineer": true }

JSONP数据交互协议一般用于Ajax跨域请求。Ajax直接请求普通文件存在跨域无权限访问的问题,然而web页面上调用js文件则不受是否跨域的影响(凡是拥有src该属性的标签都有跨域的能力),于是通过web端跨域访问数据的时候,设法把数据装进js格式的文件里面。获取之后便可以在web端进一步进行处理。

为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。

详细参考http://kb.cnblogs.com/page/139725/

你可能感兴趣的:(JSON和JSONP是什么)