JSON.parse 和eval的對比

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()處理的字符串對象,必須外層用單引號包括,字段名用雙引號包括才能正確解析。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章