eval和json.parse的使用
发布时间:2020-12-16 19:21:44 所属栏目:百科 来源:网络整理
导读:eval和json.parse的使用 eval:来源于官网 定义和用法 eval_r() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。 语法: eval_r(string) 参数 描述 string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。 返回值 通过计
eval和json.parse的使用
eval:来源于官网
定义和用法
eval_r() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
语法:
参数 描述
string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。
返回值
通过计算 string 得到的值(如果有的话)。
说明
该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval_r() 函数传递 String 对象来作为参数。
如果试图覆盖 eval 属性或把 eval_r() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。
eg:
eval_r("x=10;y=20;document.write(x*y)")
document.write(eval_r("2+2"))
var x=10
document.write(eval_r(x+17))
输出:
200
4
27
处理json数据
1、eval
将json数据转换转化json对象,使用方法统一。
var dataObj = eval_r("("+json+")");
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行
。
(1)含有“节点”的json数据
var json = {
root:
[
{name:'1',value:'0'},
{name:'2',value:'1'},
]
}";
如果获取对应的name和value的值,可以使用
$(dataObj.root).each(function(i,item){
var str = "name:"+item.name+",value:"+item.value;
})
(2)不含有“节点”的json数据
var json = {"name":"1","name":"2","name":"3"}
使用 $(dataObj).each(function(i,value:"+item.value;
})
获取对应的数据
注意:eval使用比较危险,能不用最好就不要用,以免徒增不必要的麻烦。
2、JSON.parse(String,function())
Strign:必选参数,为json数据
function():可选参数,如果不为空,则为对象的每个成员调用词函数
返回结果为对象或者数组,此方法与eval能达到相同的效果,简单易于使用,
但此方法不支持IE6、IE7标准模式,但是可以自己下载json2.js来解决这一问题。
网址:http://www.JSON.org/json2.js
使用方法:
var dataObj = JSON.parse(json);
for(var data in dataObj){
//获取对应数据的值
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在Meteor 1.3 beta中使用React Module CSS
- JAXB最初可以通过收容进行封送,然后通过@XmlIDREF封送后续引
- postgresql – 一个模式中的Flyway多个元数据表
- c# – sql server – 如何在列中找到带空格的行
- Ajax中window.location.href无法跳转的解决办法
- 《烽烟OL》客户端 Flex SDK4.0 升级4.5 or 4.6 报错解决方案
- swift – 使用添加默认参数的方法扩展协议
- ruby-on-rails – 如何使用OAuth gem将oauth_token和oauth_
- ruby – gsub的时间复杂度
- 2哥学Vb.net--随记