遍历json对象的所有key,在使用json对象时,如果无法知道key,怎么通过key变量来获取值

时间:2022-01-07 15:16:53
 对于json对像,怎么遍历json对象的所有key,在使用json对象时,如果无法知道key,怎么通过key变量来获取值?请参阅下面的关键代码:

[html] view plain copy
  1. <html>  
  2. <head>  
  3.     <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>  
  4.     <script type="text/javascript">  
  5.         var smsTypeDesc = {"4":"回访短信","3":"邮件短信","aa":"测试短信"};  
  6.         function EnumaKey(){  
  7.             for(var key in smsTypeDesc){  
  8.                 alert(key);  
  9.             }  
  10.         }  
  11.         function GetVal(){  
  12.             var key = prompt("请输入要查询的key","4");  
  13.                         if("undefined"==typeof(smsTypeDesc)) return;  
  14.             if("undefined"==typeof(smsTypeDesc[key])){  
  15.                 alert("输入的key:"+key+", 在json对象中不存在!");  
  16.                 return;  
  17.             }     
  18.             alert("您输入的key是:"+key + ",该key所对应的值是:"+smsTypeDesc[key]);  
  19.         }  
  20.         function GetValByKey(){  
  21.             alert(smsTypeDesc.aa);  
  22.         }  
  23.     </script>  
  24. </head>  
  25. <body>  
  26.     Json对象:<br/>  
  27.     <pre>  
  28.         var smsTypeDesc = {"4":"回访短信","3":"邮件短信","aa":"测试短信"};  
  29.     </pre>  
  30.     <input type="button" onclick="EnumaKey();" value="遍历smsTypeDesc所有key"/>  
  31.     <input type="button" onclick="GetVal();" value="获取smsTypeDesc动态指定key的值"/>  
  32.     <input type="button" onclick="GetValByKey();" value="获取smsTypeDesc key aa 所对应的值"/>  
  33. </body>  
  34. </html>  
         通过上面的代码,可以看出很简单。根据动态key,主要是通过[] 访问,对于知道key的通过.访问

         对于json格式字符串的解析,也可以参考以前的blog:js怎么解析json格式字符串