JSON or JSONP

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”这个属性的标签都拥有跨域的能力,比如

你可能感兴趣的:(JSON or JSONP)