js使用eval解析json数据

  • Post author:
  • Post category:其他


eval函数在js中有不少用处了,介绍eval解析json的实例,基于这个实例我们引出来在eval处理json数据时的一些注意事项。

JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。

JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。

JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。

每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

例子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  <title>eval函数解析json对象</title>  
 </head>
 <body>
  <script type="text/javascript">
  var json=eval("({sitename:'dreamdu',sitedate:new Date(1980, 12, 17, 12, 0, 0)})");
  document.write(json.sitename); 
  document.write("<br />"); 
  document.write(json.sitedate); 
  </script>
 </body>
</html>

使用eval()解析JSON格式字符串应注意的问题

在利用javascript内置的eval函数,将json格式的字符串转换成JS对象时,需要用一对”()”先将该字符串包住.

例如:

将 var strTest=”{id:”cnlei”, url:”http://www.jbxue.com”}”; 转换成JS对象

正确写法:


var objTEST=eval(“(“+strTEST+”)”);


出错写法:


var objTEST=eval(strTEST);

完整测试代码:

<script type="text/javascript">
<!--
    var strTEST="{id:"cnlei", url:"http://www.jbxue.com"}";
    var objTEST=eval("("+strTEST+")"); //正确写法
    //var objTEST=eval(strTEST); //出错写法
    alert(objTEST.id+"n"+objTEST.url);
//-->
</script>