文章來自:http://www.blogjava.net/xskowscut/articles/277283.html
我初學JSON,按照官方說明,在json2.js中有parse和stringify兩個方法,parse用於從一個字符串中解析出json對象。還是舉個例子說明:
2
原來認爲這肯定能夠正確執行的,但是無論怎樣寫這個對象string,都拋出異常。後來發現原來是 "
和 '
導致的錯誤。如果改爲:
2
就OK了!
還有就是我們寫對象的時候一般可以{name:'xskow'},即屬性名可以不用雙引號括起來,但如果使用JSON.parse的話,每個屬性都必須用雙引號括起來,否則也會拋出異常。
stringify方法就是和parse功能相反,但是一般對自定義對象也沒有異常產生,這裏就不說了
文章來自:http://hi.baidu.com/91youqu/blog/item/ad3e7b1e9ee26dc2a78669c0.html
比如,如下的代碼:
function handle_success(response){
var json = eval(response); // response = "{'foo' : 'bar'}";
}
瀏覽器會報,invalid label錯, 這是因爲, eval會嘗試將你的response解釋爲一個label, 當你在腳本中直接寫:
<script>
{'foo' : 'bar'};
</script>
會報錯的原理是一樣的.
解決辦法有倆個:
var json = eval('(' + response + ')'); // response = "{'foo' : 'bar'}";
或者
eval('var json = ' + response); // response = "{'foo' : 'bar'}";
//json is available now