美文网首页
JSON or JSONP

JSON or JSONP

作者: 楓丶無痕 | 来源:发表于2017-09-26 11:41 被阅读0次

JSON 是什么?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速度)。

  • JSON 语法是 JavaScript 对象表示语法的子集
    • 数据在名称/值对中 (key/value键值对)
    • 数据由逗号分隔
    • 花括号保存对象
    • 方括号保存数组
var json1 = {"name": "Byron", "age": "24"}
var json2 = [
    {"name": "Byron", "age": "24"}, 
    {"name": "Byron2", "age": "25"}
]
  • JSON的优点

    • 基于纯文本,跨平台传递极其简单
       * Javascript原生支持,后台语言几乎全部支持
       * 轻量级数据格式,占用字符数量极少,特别适合互联网传递
       * 可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的
       * 容易编写和解析,当然前提是你要知道数据结构
  • window.JSON 浏览器内置JSON方法 IE8以上支持

  • JS对象&JSON格式字符串互相转化

var str = '{"name":"robert","age":21}'; //JSON格式的字符串
JSON.parse(str);//转换成JS对象
var obj = {"name":"jirengu", "age":21} //JS对象
JSON.stringify(obj); //转换成JSON格式的字符串

JSONP又是什么?

  • 一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准。

  • 不过我们又发现,Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有”src”这个属性的标签都拥有跨域的能力,比如<script>、<img>、<iframe>)。

  • 于是可以判断,当前阶段如果想通过纯web端(ActiveX控件、服务端代理、属于未来的HTML5之Websocket等方式不算)跨域访问数据就只有一种可能,那就是在远程服务器上设法把数据装进js格式的文件里,供客户端调用和进一步处理。

  • 恰巧我们已经知道有一种叫做JSON的纯字符数据格式可以简洁的描述复杂数据,更妙的是JSON还被js原生支持,所以在客户端几乎可以随心所欲的处理这种格式的数据。

  • 这样子解决方案就呼之欲出了,web客户端通过与调用脚本一模一样的方式,来调用跨域服务器上动态生成的js格式文件(一般以JSON为后缀),显而易见,服务器之所以要动态生成JSON文件,目的就在于把客户端需要的数据装入进去。

  • 客户端在对JSON文件调用成功之后,也就获得了自己所需的数据,剩下的就是按照自己需求进行处理和展现了,这种获取远程数据的方式看起来非常像AJAX,但其实并不一样。

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

JSON是一种基于文本的轻量级的数据交换格式。

JSONP是一种非正式的传输协议,多用于实现跨域。

相关文章

  • 跨域的几种实现方式

    JSONP JSONP 是JSON with padding(填充式JSON 或参数式JSON)的简写;JSONP...

  • Java高级技术day84:JsonP和HttpClient

    一、Jsonp的简介 1.什么是 JsonP? Jsonp(JSON with Padding) 是 json 的...

  • JSONP全面分析

    JSONP JSONP是JSON with padding(填充式JSON或参数式JSON)的简写,是应用JSON...

  • Jsonp学习笔记

    一、Jsonp简介 1.什么是Jsonp Jsonp(JSON with Padding)是json的一种“使用模...

  • 浅谈JSON和JSONP!!!

    JSON JSON返回的是一串数据,是对象,可以无限扩展; JSON优点: JSON缺点: JSONP JSONP...

  • JSON和JSONP

    什么JSON JSON的优点 JSON的格式 什么是JSONP JSONP的工作原理 1. 2. 4 总结

  • JSONP的劫持

    关于 JSONP JSONP 全称是 JSON with Padding ,是基于 JSON 格式的为解决跨域请求...

  • jsonp实践

    什么是Jsonp Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从...

  • JSONP

    JSONP Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域...

  • 关于jsonp劫持

    关于jsonp JSONP 全称是 JSON with Padding ,是基于 JSON 格式的为解决跨域请求资...

网友评论

      本文标题:JSON or JSONP

      本文链接:https://www.haomeiwen.com/subject/yfksextx.html