在JavaScript中使用eval对JSON求值
Using eval to evaluate JSON in JavaScript
我在看别人的代码时看到了以下内容:
假设JSON只是一个普通的JSON文件,下面做什么?
var obj = eval("["+json+"]");
我想我真的不明白["+json+"]
在做什么?这只是在""
中包装JSON吗?
Json是javascript的一个子集。所以eval只会将json转换为js-object(除非json描述的是一个对象,那么你需要将其包装在'(' ')'中)。在[]中包装它将把对象放在一个数组中。
但是,如果json源不是来自可信源,json也可能包含任意代码,因此eval不应该用于此目的。使用JSON。相反,使用
更安全,更容易。var json = JSON.stringify(object);
var array = eval("[" + json + "]"); //array contains one element which is a copy of object. Because json is valid javascript.
相关文章:
- 如果在代码末尾进行求值,jQuery-console.log将提供空数组
- JavaScript-HTML表单到JSON(空值)和格式
- HEAD中LINK和STYLE元素的求值顺序
- 聚合物绑定条件属性和求值属性
- 我想将查询字符串变量添加到JSON名称/值对中
- javascript/jquery-避免重复对条件求值
- 为什么-0===0的求值结果为true
- 为什么下面给出的表达式在javascript中的求值结果为30
- 如何从不同范围外的元素属性中获取求值表达式
- myFunc=function(){}应该立即在Javascript中求值
- 针对常量求值的角度表达式
- JQuery:从 JSON 读取值
- 我无法使用JSON将值从javascript传递给PHP脚本
- AngularJS-在$event.stopPropagation之后停止ng-click表达式求值
- Angular 2 HTTP显示特定于JSON的值
- JSON数据中的部分求值
- 将变量求值作为JSON查询的一部分
- 为什么此JSON.parse()求值会导致错误
- 当涉及转义字符时,Javascript eval无法对json求值
- 在JavaScript中使用eval对JSON求值