JSON格式

人气指数:0 页面更新时间:2016-07-20 08:42
网站介绍

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

  JSON建构有两种结构:

  1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

  2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

  简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。

  JSON 可以用来表示数组:当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在 XML 中,需要许多开始标记和结束标记;如果使用典型的名称 / 值对(就像在本系列前面文章中看到的那种名称 / 值对),那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName这样的形式。

  JSON格式是1999年《JavaScript Programming Language, Standard ECMA-262 3rd Edition》的子集合,所以可以在JavaScript以eval()函式(javascript通过eval()调用解释器)读入。不过这并不代表JSON无法使用于其他语言,事实上几乎所有与网页开发相关的语言都有JSON函式库。

  由于JSON在语法上是JavaScript的子集合,所以一般都会使用eval()作为读取资料的方式,如果是针对可靠的数据来源,在不支持原生JSON解析的浏览器上面这是快速的方法。然而由于eval方法同样可以执行任意的JavaScript代码,因此当数据来源不可靠时则可能产生安全性问题。其中一种防止不安全代码出现的解决办法,是透过浏览器原生支持的JSON.parse(str)方法读取JSON资料,目前已经得到大部分主流浏览器的支持(IE8+,Firefox 3.5+,Chrome4+/Safari4+,Opera10+),在不支持原生JSON对象的浏览器上面可以使用parseJSON方法进行读取,parseJSON采用解析器验证读入的代码是否真的是JSON代码,这样就提供了较好的安全性。但由于这是用模拟的方式读取,速度上会比eval()慢。另外一个安全上的问题则是跨站请求伪造(Cross-site request forgery,简称CSRF或XSRF)。这个问题在Javascript中的状况是,由于Javascript采用了称为“沙盒”的机制,这种机制限制Javascript引擎仅能引入同一个站点的代码,因而某种程度上提高了安全性。

免责声明:
此页是<JSON格式>的介绍页面,并非官方站点,我们收集于网络只为广大网民快速查询提供帮助。
如涉及内容、版权等问题,请在30日内联系,我们将在第一时间删除内容!点此纠错或删除此信息

网站资料
网站名称: JSON格式
网站栏目: 网站简介 网站链接
网站链接: www.json.org
收录查询: [百度收录] [360收录] [搜狗收录] [必应收录] [谷歌收录]
网页版本: Mip版 手机版 电脑版
本页链接: https://wang220002.honpu.com/