var str = '{"name":"zhangsan","age":18,"gender":"man"}';
JSON.parse(str);複製代碼
結果: javascript
注意:單引號寫在{}外,每一個屬性名都必須用雙引號,不然會拋出異常。(有的瀏覽器不支持 JSON.parse() 如:IE 6 、IE 7 就不支持)java
var str = '{"name":"zhangsan","age":18,"gender":"man"}';
eval('('+str+')'); // 格式: eval( '(' + string + ')' );複製代碼
結果:jquery
那是由於eval()至關於一個執行環境,當你不加括號的時候,str 會被認爲是一條複合語句。運行的時候就會逐個字符的解析。
可是加上括號的時候,str 就當作一個表達式去運算。從括號開始就被當作了對象進行識別。複製代碼
JSON.parse() 和 eval()的區別json
var num = 1;
var jsonstr = '{"name":"zhangsan","age":++num}';
var jsondata1 = eval('('+jsonstr+')');
console.log(jsondata1);
console.log(num);//這時num值爲2
var jasondata2=JSON.parse(jsonstr);
console.log(jsondata2);//報錯複製代碼
結果:瀏覽器
從上例就能夠明顯地看出, eval在解析字符串時,會執行該字符串中的代碼。
因爲用eval解析一個json字符串而形成原先的num的值改變(這樣的後果是至關危險的)。複製代碼
var str = {"name":"zhangsan","age":18,"gender":"man"};
JSON.stringify(str);複製代碼
結果爲:
bash
var str = '{"name":"zhangsan","age":18,"gender":"man"}';
jQuery.parseJSON(str)複製代碼
結果:ui
若是這篇文章對您有幫助的話,請多多支持!spa