JSON

javascript使用eval解析json的注意点

字号+ 作者:H5之家 来源:H5之家 2016-12-27 18:01 我要评论( )

对于json格式的字符串,在使用eval将字符串转换为json对象时需要注意在前后加上小括号。如下所示: scripttype=text/javascriptvardata={root:[{name:1,value:0},{name:6101,value:北京},{name:6102,value:天津}]};vardataObj_1=eval(data);vardataObj_2=eva

对于json格式的字符串,在使用eval将字符串转换为json对象时需要注意在前后加上小括号。如下所示:

<script type="text/javascript"> var data = '{root:[{name:"1", value:"0"},{name:"6101", value:"北京"},{name:"6102", value:"天津"}]}'; var dataObj_1 = eval(data); var dataObj_2 = eval("(" + data + ")"); console.info(dataObj_1); console.info(dataObj_2); </script>

该代码的运行结果如下:

代码运行结果

图1:代码运行结果

之所以会出现如上的结果,是因为eval本身就可以解析并且运行字符串中的代码。由于json是以{}的方式来开始和结束的,在JS中,它会被当成是一个语句块来处理,所以想要不被当作语句块来处理,就必须强制性的将它转为一种表达式。加上圆括号的目的就是为了使函数在处理的时候强制将括号内的表达式转为对象,而不是作为语句来执行。

在项目上遇到了这个问题,在网上找到了这种解释,挺容易接受的,但是值得mark一下。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 用Json实现PHP与JavaScript间数据交换的方法详解

    用Json实现PHP与JavaScript间数据交换的方法详解

    2016-12-27 18:02

  • 使用PHP接收POST数据,解析json数据

    使用PHP接收POST数据,解析json数据

    2016-12-25 10:03

  • PHP使用curl函数发送Post请求的注意要点

    PHP使用curl函数发送Post请求的注意要点

    2016-12-20 17:03

  • 【Json】使用json的一些技巧

    【Json】使用json的一些技巧

    2016-12-19 17:00

网友点评