将对象字符串转换为JS对象

时间:2018-04-18 09:00:45

标签: javascript object

这是一个字符串:

"{aa:function(){},bb:document.body}"

JSON.parse不适用于此,如何将其转换为JS对象?

3 个答案:

答案 0 :(得分:2)

你可以使用eval加上前缀。

警告:Why is using the JavaScript eval function a bad idea?



var string = "{aa:function(){},bb:document.body}",
    object;
    
eval('object = ' + string);

console.log(object);




答案 1 :(得分:1)

在这种情况下,选项可以是new Function()

它比eval()更少邪恶,这里有一个答案,解释了它们之间的区别:

Stack snippet



var string = "{aa:function(){},bb:document.body}",
    object;
    
object = new Function( 'return (' + string + ')' )();

console.log(object);




答案 2 :(得分:0)

如果您需要将字符串视为json对象:



let str = "{\"aa\":\"function() { console.log('Look mama no hands'); }\",\"bb\":\"document.body\"}";
let obj = JSON.parse(str);
let func = null;
eval("func = "+obj.aa);
func();