json和jsonp
2015-12-23 21:11
274 查看
JSON(JavaScript Object Notation)和JSONP(JSON with Padding)虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。我们拿最近比较火的谍战片来打个比方,JSON是地下党们用来书写和交换情报的“暗号”,而JSONP则是把用暗号书写的情报传递给自己同志时使用的接头方式。看到没?一个是描述信息的格式,一个是信息传递双方约定的方法。
一、什么是JSON
JSON是一种基于文本的数据交换方式,或者叫做数据描述格式。
JSON的优点:
1、基于纯文本,跨平台传递极其简单;
2、Javascript原生支持,后台语言几乎全部支持;
3,、轻量级数据格式,占用字符数量极少,特别适合互联网传递;
4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别;
5、容易解析和编写,当然前提是你要知道数据结构;
定义JSON
二、JSONP
jsonp可以解决跨域请求的问题;
例:
但ajax和jsonp其实本质上是不同的东西。ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加<script>标签来调用服务器提供的js脚本。
一、什么是JSON
JSON是一种基于文本的数据交换方式,或者叫做数据描述格式。
JSON的优点:
1、基于纯文本,跨平台传递极其简单;
2、Javascript原生支持,后台语言几乎全部支持;
3,、轻量级数据格式,占用字符数量极少,特别适合互联网传递;
4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别;
5、容易解析和编写,当然前提是你要知道数据结构;
定义JSON
var obj = { 1: "value1", "2": "value2", count: 3, person: [ //数组结构JSON对象,可以嵌套使用 { id: 1, name: "张三" }, { id: 2, name: "李四" } ], object: { //对象结构JSON对象 id: 1, msg: "对象里的对象" } };读取JSON
function ReadJSON() { alert(obj.1); //会报语法错误,可以用alert(obj["1"]);说明数字最好不要做关键字 alert(obj.2); //同上 alert(obj.person[0].name); //或者alert(obj.person[0]["name"]) alert(obj.object.msg); //或者alert(obj.object["msg"]) }
二、JSONP
jsonp可以解决跨域请求的问题;
例:
<!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" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>XmlHttp</title> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $.ajax({ type: "get", async: false, url: "***",//传输地址 dataType: "jsonp", //定义传输的类型 jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback) jsonpCallback:"josnpFun",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据 success: function(json){ alert(json.xxxx); }, error: function(){ alert('fail'); } }); }); </script> </head> <body> </body> </html>
但ajax和jsonp其实本质上是不同的东西。ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加<script>标签来调用服务器提供的js脚本。
相关文章推荐
- JS小知识点----基本包装类型和引用类型
- canvas+js绘制饼状统计图
- JS实现表单输入Enter键转换焦点框
- cJSON源码学习总结
- javascript生成表格增删改查
- JS链接页面
- javascript 表格增删改
- (mark 笔记)json数据解析
- BZOJ 1015: [JSOI2008]星球大战starwar 并查集
- js 动态生成宽度固定的table控件
- Extjs Widget
- jstl中格式化时间戳
- JavaScript中concat不起作用
- 測试JSON RPC远程调用(JSONclient)
- 轻松学习JavaScript二十五:DOM编程学习之操作CSS样式(二)
- browserify.js 的模块加载
- 常用JS验证函数总结
- js 同步和异步共存的示例
- JavaScript_通过onmouseover onmouseout 部分显示与隐藏
- js获取url参数 兼容某些带#url