对于json对像,怎么遍历json对象的所有key,在使用json对象时,如果无法知道key,怎么通过key变量来获取值?请参阅下面的关键代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
<script type="text/javascript">
var smsTypeDesc = {"4":"回访短信","3":"邮件短信","aa":"测试短信"};
function EnumaKey(){
for(var key in smsTypeDesc){
alert(key);
}
}
function GetVal(){
var key = prompt("请输入要查询的key","4");
if("undefined"==typeof(smsTypeDesc)) return;
if("undefined"==typeof(smsTypeDesc[key])){
alert("输入的key:"+key+", 在json对象中不存在!");
return;
}
alert("您输入的key是:"+key + ",该key所对应的值是:"+smsTypeDesc[key]);
}
function GetValByKey(){
alert(smsTypeDesc.aa);
}
</script>
</head>
<body>
Json对象:<br/>
<pre>
var smsTypeDesc = {"4":"回访短信","3":"邮件短信","aa":"测试短信"};
</pre>
<input type="button" onclick="EnumaKey();" value="遍历smsTypeDesc所有key"/>
<input type="button" onclick="GetVal();" value="获取smsTypeDesc动态指定key的值"/>
<input type="button" onclick="GetValByKey();" value="获取smsTypeDesc key aa 所对应的值"/>
</body>
</html> 通过上面的代码,可以看出很简单。根据动态key,主要是通过[] 访问,对于知道key的通过.访问
对于json格式字符串的解析,也可以参考以前的blog:js怎么解析json格式字符串