json字符串中,包含函数時,使用JSON.parse(strJSON)轉換時,定義的字符串函數被識別成普通的字符串。
比如:{"formate":"function test(){ return 1;}"}
可以使用JSON.parse(str,funReviver)中第二個參數funReviver 指定每個json對象,調用funReviver函數。
代碼如下:
var str =' {"formate":"function test(){ return 1;}"}';
var jsonObj = JSON.parse(str,funReviver);
function funReviver(key,value){
if(key == 'formatter' && "string" == typeof value && value.indexOf('function')== 0 ){
//alert(key);
return Function('return ' + value)();
}
return value;
}