JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,是javascript的一个子集,而且独立于语言的文本格式,采用了相似于C语言的一些习惯。
javascript
JSON用于描述数据结构,有如下形式存在。
java
因为 JSON 是 JavaScript 的子集,因此通常都会使用eval()做为读取数据的方式,若是是针对可靠的数据来源,在不支持原生 JSON 解析的浏览器上面这是最快速的方法。然而因为 eval 方法一样能够执行任意的 JavaScript 代码,所以当数据来源不可靠时则可能产生安全性问题。以下面的例子,直接用 eval 执行时会跳转:var json = { message: (function () { window.location='http://zh.wikipedia.org/wiki/JSON#.E5.AE.89.E5.85.A8.E6.80.A7.E5.95.8F.E9.A1.8C'; })() };
其中一种防止不安全代码出现的解决办法,是经过浏览器原生支持的 JSON.parse(str) 方法读取 JSON 数据,目前已经获得大部分主流浏览器的支持(IE8+,Firefox 3.5+,Chrome4+/Safari4+,Opera10+),在不支持原生 JSON 对象的浏览器上面能够使用parseJSON方法进行读取,parseJSON采用解析器验证读入的代码是否真的是 JSON 代码,这样就提供了较好的安全性。但因为这是用模拟的方式读取,速度上会比eval()慢。 json
var json = JSON.parse(str);
3.取json中key对应的值 数组
<script type="text/javascript">
function getJson(key){
var jsonObj={"name":"傅红雪","age":"24","profession":"刺客"};
//一、使用eval方法
var eValue=eval('jsonObj.'+key);
alert(eValue);
//二、遍历Json串获取其属性
for(var item in jsonObj){
if(item==key){ //item 表示Json串中的属性,如'name'
var jValue=jsonObj[item]; //key所对应的value
alert(jValue);
}
}
//三、直接获取
alert(jsonObj[''+key+'']);
}
getJson('age');
</script>
经过上面内容的理解,通常JSON问题都应该解决了......
浏览器