为什么使用eval()将json字符串转换为对象要多加一个小括号
2016-12-30 10:28
232 查看
转自:http://www.softwhy.com/forum.php?mod=viewthread&tid=11827
使用eval()将json字符串转换为对象要多加一个小括号:
关于eval()函数的具体用法这里就不多介绍了,具体可以参阅javascript的eval()方法一章节,下面就介绍一下为什么使用eval()函数将json格式字符串转换为对象的时候,需要多嵌套一层小括号,下面就介绍一下它的原因,希望能够对需要的朋友带来帮助。
先看一段转换代码:
以上代码可以将一个json格式字符串转换成对象,下面就介绍一下为何要嵌套一个效果括号。
如果不加小括号的话,字符串将被eval()函数处理为:
在js中,如果一段代码既可以认为是表达式也可以认为是语句,那么语句优先,所以上面就是一个语句,那么”webName”:”蚂蚁部落”就是标签语句,但是逗号运算符后面也是一个标签语句就不对了,因为运算符后面要跟着表达式才可以。如果外面套上一层小括号,那么代码就会被eval()处理成:
因为小括号之中必须是表达式,那么里面的内容就成了一个对象直接量表达式,也就是转换成功了。
使用eval()将json字符串转换为对象要多加一个小括号:
关于eval()函数的具体用法这里就不多介绍了,具体可以参阅javascript的eval()方法一章节,下面就介绍一下为什么使用eval()函数将json格式字符串转换为对象的时候,需要多嵌套一层小括号,下面就介绍一下它的原因,希望能够对需要的朋友带来帮助。
先看一段转换代码:
var jsonStr='{"webName":"蚂蚁部落","webAddress":"青岛市南区","age":2}'; var jsonObject=eval("("+jsonStr+")"); console.log(jsonObject.webName);
以上代码可以将一个json格式字符串转换成对象,下面就介绍一下为何要嵌套一个效果括号。
如果不加小括号的话,字符串将被eval()函数处理为:
{"webName":"蚂蚁部落","webAddress":"青岛市南区","age":2}
在js中,如果一段代码既可以认为是表达式也可以认为是语句,那么语句优先,所以上面就是一个语句,那么”webName”:”蚂蚁部落”就是标签语句,但是逗号运算符后面也是一个标签语句就不对了,因为运算符后面要跟着表达式才可以。如果外面套上一层小括号,那么代码就会被eval()处理成:
({"webName":"蚂蚁部落","webAddress":"青岛市南区","age":2})
因为小括号之中必须是表达式,那么里面的内容就成了一个对象直接量表达式,也就是转换成功了。
相关文章推荐
- 使用eval转换json对象时为什么外边加括号?
- 使用eval转换json对象时为什么外边还要加括号eval("("+data+")");
- 为什么eval转换json对象字符串时要加括号?
- 为什么要用eval("({a:'b'})")来将字符串转换成json对象
- 【荐】使用eval()、new Function()将JSON字符串转换为JSON对象
- 使用eval将json字符串转换为json对象并且处理json数据
- 【荐】使用eval()、new Function()将JSON字符串转换为JSON对象
- json格式的字符串转换成了JSON对象的两种方法(eval()和JSON.parse())
- js解析字符串为json对象使用eval(str)方法
- 使用jackson对Java对象与JSON字符串相互转换的一些总结
- 使用jackson对Java对象与JSON字符串相互转换的一些总结
- 【第20篇】org.json字符串转换,对象的转换,泛型的转换以及JSONStringer和JSONTokener的使用
- 为什么eval某个json字符串时要加括号?
- 关于JSon中 eval() 把json 的字符串 转换成 对象
- JSON-lib 使用过程中将一个很长的字符串 转换成 json 对象时 ,耗时太久的解决方式。
- 使用json-lib将java对象转换成json字符串
- Js中把JSON字符串转换为JSON对象(eval()、new Function())
- Java之使用json-lib进行对象与json字符串之间的转换
- java中json包的使用以及字符串,map,list,自定义对象之间的相互转换
- javascript数据(对象字符串等)转换成json数据的javascript扩展包的使用