您的位置:首页> 前端教程> JSON教程

eval() JSON转换 小括号 () 作用

2018-9-7 10:47| 作者: admin| 查看: 943| 评论: 0|来自: 蚂蚁部落

首先简单回顾一下eval方法的作用,它可以将其参数作为一段JavaScript代码执行。

代码实例如下:

[JavaScript] 纯文本查看 复制代码运行代码
console.log(eval('1+1'));

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201907/12/140801h5cgsi79dkx7hz79.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述代码将字符串作为一段JavaScript代码执行,进行的是算术加运算。

再来看一段代码实例,我们要将JSON转换成对象:

[JavaScript] 纯文本查看 复制代码
let jsonStr='{"webName":"蚂蚁部落","age":5}';
let antzone=eval(jsonStr);

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201907/12/140837hsn0ll0w2r2zn2ff.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述代码没有达成预期效果,报错了,代码修改如下:

[JavaScript] 纯文本查看 复制代码运行代码
let jsonStr='{"webName":"蚂蚁部落","age":5}';
let antzone=eval("("+jsonStr+")");
console.log(antzone.webName)

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201907/12/140923r49kstnn8dzknc7c.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述代码可以顺畅的运行,并打印出对应的属性值。

唯一的区别就是在JSON外面又嵌套的一层小括号,代码分析如下:

(1).如果不加小括号,那么大括号会被当做一个语句,但内容不符合JavaScript任何一种语法结构规范()

(2).小括号是一个分组运算符,小括号的内容会被当做一个表达式进行计算,而不是语句。

(3).于是小括号里面大括号和其内容被解读为一个对象直接量。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部