JSON.parse和eval都可以把字符串類型的數組和對象轉化爲數組和對象本身,但在使用過程中有些地方要注意:
var obj='{a:1,b:2}';
obj=eval('('+obj+')');
alert(obj.a);
//此段代碼輸出1
var obj='{a:1,b:2}';
obj=JSON.parse(obj);
alert(obj.a);
//此段代碼沒輸出
var obj="{'a':1,'b':2}";
obj=JSON.parse(obj);
alert(obj.a);
//此段代碼沒輸出
var obj="{'a':1,'b':2}";
obj=JSON.parse(obj);
alert(obj.a);
//此段代碼沒輸出
var obj='{"a":1,"b":2}';
obj=JSON.parse(obj);
alert(obj.a);
//此段代碼輸出1
從上述例子可以看出:eval對於引號沒有特殊限制,JSON.parse()處理的字符串對象,必須外層用單引號包括,字段名用雙引號包括才能正確解析。