阅读(4691) (0)

JavaScript JSON 解析/动态执行

2021-06-01 09:42:46 更新

1.4.1【必须】使用安全的JSON解析方式

  • 应使用JSON.parse()解析JSON字符串。低版本浏览器,应使用安全的Polyfill封装

// bad: 直接调用eval解析json
const sUserInput = getURLParam("json_val");
const jsonstr1 = `{"name":"a","company":"b","value":"${sUserInput}"}`;
const json1 = eval(`(${jsonstr1})`);


// good: 使用JSON.parse解析
const sUserInput = getURLParam("json_val");
JSON.parse(sUserInput, (k, v) => {
    if (k === "") return v;
    return v * 2;
});


// good: 低版本浏览器,使用安全的Polyfill封装(基于eval)
<script src="https://github.com/douglascrockford/JSON-js/blob/master/json2.js" rel="external nofollow" ></script>;
const sUserInput = getURLParam("json_val");
JSON.parse(sUserInput);