We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JSON.parse(text[, reviver])
用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。
function jsonParse(opt) { return eval('(' + opt + ')'); } jsonParse('{"x":5}');// { x: 5} jsonParse('[1,"false",false]');// [1, "false", false] 直接调用eval函数,容易出现xss漏洞,不建议直接使用这个方法。 如果想用eval方法实现,可以先对参数做json格式校验,符合格式,才能调用eval。
var jsonStr = '{ "age": 20, "name": "jack" }'; var json = (new Function('return ' + jsonStr))();
Function与eval都可以将字符串转换成js代码
The text was updated successfully, but these errors were encountered:
No branches or pull requests
语法
必需, 一个有效的 JSON 字符串。
可选,一个转换结果的函数, 将为对象的每个成员调用此函数。
JSON.parse功能
用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。
模拟JSON.parse解析JSON字符串的功能
第一种:直接调用eval
function jsonParse(opt) {
return eval('(' + opt + ')');
}
jsonParse('{"x":5}');// { x: 5}
jsonParse('[1,"false",false]');// [1, "false", false]
直接调用eval函数,容易出现xss漏洞,不建议直接使用这个方法。
如果想用eval方法实现,可以先对参数做json格式校验,符合格式,才能调用eval。
第二种:使用new Function
eval和Function的区别
共同点:
Function与eval都可以将字符串转换成js代码
不同点:
The text was updated successfully, but these errors were encountered: