Json 和 Jsonp
来源:互联网 发布:p2p平台数据分析 编辑:程序博客网 时间:2024/06/03 20:26
JSON是一种数据交换格式,而JSONP是一种非官方跨域数据交互协议。JSON是“暗号”,而JSONP则是接头方式。一个是描述信息的格式,一个是信息传递双方约定的方法。
Json
Json 介绍
JavaScript 支持
- JSON.parse(Json 字符串); // 将字符串转对象
- JSON.stringify(Object 对象); // 将对象转字符串
优点
- 基于纯文本,跨平台传递极其简单;
- Javascript原生支持,后台语言几乎全部支持;
- 轻量级数据格式,占用字符数量极少,特别适合互联网传递;
- 可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;
- 容易编写和解析,当然前提是你要知道数据结构;
实例
// 描述一个人var person = { "Name": "Bob", "Age": 32, "Company": "IBM", "Engineer": true}// 获取这个人的信息var personAge = person.Age;// 描述几个人var members = [ { "Name": "Bob", "Age": 32, "Company": "IBM", "Engineer": true }, { "Name": "John", "Age": 20, "Company": "Oracle", "Engineer": false }, { "Name": "Henry", "Age": 45, "Company": "Microsoft", "Engineer": false }]// 读取其中John的公司名称var johnsCompany = members[1].Company;// 描述一次会议var conference = { "Conference": "Future Marketing", "Date": "2012-6-1", "Address": "Beijing", "Members": [ { "Name": "Bob", "Age": 32, "Company": "IBM", "Engineer": true }, { "Name": "John", "Age": 20, "Company": "Oracle", "Engineer": false }, { "Name": "Henry", "Age": 45, "Company": "Microsoft", "Engineer": false } ]}// 读取参会者Henry是否工程师var henryIsAnEngineer = conference.Members[2].Engineer;
Jsonp
Jsonp(JSON with Padding) 是 json 的一种”使用模式”,可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP )呢?这是因为同源策略。
同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略。
所谓同源是指,域名,协议,端口相同。
当需要通讯时,本站脚本创建一个<script>
元素,地址指向第三方的API网址,形如:
<script src="http://www.example.net/api?param1=1¶m2=2"></script>
并提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递)。
第三方产生的响应为json数据的包装(故称之为jsonp,即json padding),形如: callback({"name":"hax","gender":"Male"})
这样浏览器会调用callback函数,并传递解析后json对象作为参数。本站脚本可在callback函数里处理所传入的数据。
Jsonp 教程
0 0
- JSON 和 JSONP
- JsonP和Json
- 说说JSON和JSONP
- JSON 和 JSONP
- JSON和JSONP
- JSON和JSONP
- 说说JSON和JSONP
- 说说JSON和JSONP
- 说说JSON和JSONP
- 说说json和jsonp
- json和jsonp
- 说说JSON和JSONP
- 说说JSON和JSONP
- 聊聊JSON和JSONP
- 说说JSON和JSONP
- 说说JSON和JSONP
- JSON和JSONP
- JSON和JSONP
- Linux堆内存管理深入分析(上)
- ubuntu系统的ssh的安装和配置
- Protel.DXP2004 电路板设计
- BZOJ3526: [Poi2014]Card
- <html5>canvas和缓存
- Json 和 Jsonp
- poj-1679 The Unique MST(次小生成树模板)
- 排序算法(快速排序,冒泡排序,插入排序,堆排序)
- 第五次作业
- 深入理解Java:注解(Annotation)自定义注解入门
- 项目二 实现复数类中的运算符重载(1)
- 【Hibernate】——多对多关联映射
- 欢迎使用CSDN-markdown编辑器
- Python2.7注意点汇总(至函数模块)