它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)同时也易于机器解析和生成它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)它被理解为数组(array)JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序但是 JavaScript 很容易解释它,而且 JSON 可以表示比名称 / 值对更复杂的结构可以表示数组和复杂的对象,而不仅仅是键和值的简单列表JSON 不但能够提高可读性,而且可以减少复杂性假设您希望表示一个人名列表需要许多开始标记和结束标记;如果使用典型的名称 / 值对(就像在本系列前面文章中看到的那种名称 / 值对),那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName这样的形式所以可以在JavaScript以eval函式(javascript通过eval调用解释器)读入事实上几乎所有与网页开发相关的语言都有JSON函式库所以一般都会使用eval作为读取资料的方式,如果是针对可靠的数据来源,在不支持原生JSON解析的浏览器上面这是最快速的方法因此当数据来源不可靠时则可能产生安全性问题是透过浏览器原生支持的JSON.parse(str)方法读取JSON资料,目前已经得到大部分主流浏览器的支持(IE8+,Firefox 3.5+,Chrome4+/Safari4+,Opera10+),在不支持原生JSON对象的浏览器上面可以使用parseJSON方法进行读取,parseJSON采用解析器验证读入的代码是否真的是JSON代码,这样就提供了较好的安全性速度上会比eval慢简称CSRF或XSRF)由于Javascript采用了称为...这种机制限制Javascript引擎仅能引入同一个站点的代码,因而某种程度上提高了安全性。▉