由于JSON在语法上是JavaScript的子集合,所以一般都会使用eval #40; #41;作为读取资料的方式,如果是针对可靠的数据来源,在不支持原生JSON解析的浏览器上面这是最快速的方法。然而由于eval方法同样可以执行任意的JavaScript代码,因此当数据来源不可靠时则可能产生安全性问题。其中一种防止不安全代码出现的解决办法,是透过浏览器原生支持的JSON.parse(str)方法读取JSON资料,目前已经得到大部分主流浏览器的支持(IE8+,JSON格式,http://www.json.org,Firefox 3.5+,Chrome4+/Safari4+,Opera10+),在不支持原生JSON对象的浏览器上面可以使用parseJSON方法进行读取,parseJSON采用解析器验证读入的代码是否真的是JSON代码,这样就提供了较好的安全性。但由于这是用模拟的方式读取,速度上会比eval #40; #41;慢。另外一个安全上的问题则是跨站请求__(Cross-site request forgery,简称CSRF或XSRF)。这个问题在Javascript中的状况是,由于Javascript采用了称为 “沙盒 ”的机制,这种机制限制Javascript引擎仅能引入同一个站点的代码,JSON格式因而某种程度上提高了安全性。
JSON 可以用来表示数组:当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在 XML 中,需要许多开始标记和结束标记;如果使用典型的名称 / 值对(就像在本系列前面文章中看到的那种名称 / 值对),那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName这样的形式。
2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
JSON建构有两种结构:
美国,电脑网络,编程,JSON格式官网:http://www.json.org