Jquery ajax不能解析json對象,報Invalid JSON錯誤的原因和解決方法
更新時間:2010年03月27日 00:24:50 作者:
我們知道Invalid JSON錯誤導(dǎo)致的json對象不能解析,一般都是服務(wù)器返回的json字符串的語法有錯誤。這種情況下,我們只需要仔細的檢查一下json就可以解決問題。
下面說一下,最近在使用jquery 1.4中使用$.ajax()方法解析json對象遇到的問題。
Json對象是:
[{name:'二手房出售',infoCount:0,pageUrl:'/ershoufang'},{name:'二手房求購',infoCount:0,pageUrl:'/qiugou'},{name:'二手房裝修',infoCount:0,pageUrl:'/esfzhuangxiu'},{name:'二手回收',infoCount:0,pageUrl:'/huishou'},{name:'二手摩托車',infoCount:0,pageUrl:'/motor'},{name:'二手汽車求購',infoCount:0,pageUrl:'/ershoucheqg'},{name:'二手汽車轉(zhuǎn)讓',infoCount:9,pageUrl:'/ershouche'},{name:'二手市場',infoCount:0,pageUrl:'/ershoushichang'}]
不知道大家有沒有發(fā)現(xiàn)這段json對象的問題。這樣的寫法在js腳本和jquery 1.4之前的版本都是沒有問題的。因為在1.3及更早版本中,jQuery通過javascript的eval方法來解析json對象。在1.4中,jQuery使用了更嚴格的方法來解析json。所有的內(nèi)容都必須使用雙引號。
這點從jQuery.parseJSON(json) 可以看出,parseJSON在文檔中的解釋是:
接受一個JSON字符串,返回解析后的對象。
傳入一個畸形的JSON字符串會拋出一個異常。比如下面的都是畸形的JSON字符串:
{test: 1} ( test 沒有包圍雙引號)
{'test': 1} (使用了單引號而不是雙引號)
另外,如果你什么都不傳入,或者一個空字符串、null或undefined,parseJSON都會返回 null 。
Json對象是:
復(fù)制代碼 代碼如下:
[{name:'二手房出售',infoCount:0,pageUrl:'/ershoufang'},{name:'二手房求購',infoCount:0,pageUrl:'/qiugou'},{name:'二手房裝修',infoCount:0,pageUrl:'/esfzhuangxiu'},{name:'二手回收',infoCount:0,pageUrl:'/huishou'},{name:'二手摩托車',infoCount:0,pageUrl:'/motor'},{name:'二手汽車求購',infoCount:0,pageUrl:'/ershoucheqg'},{name:'二手汽車轉(zhuǎn)讓',infoCount:9,pageUrl:'/ershouche'},{name:'二手市場',infoCount:0,pageUrl:'/ershoushichang'}]
不知道大家有沒有發(fā)現(xiàn)這段json對象的問題。這樣的寫法在js腳本和jquery 1.4之前的版本都是沒有問題的。因為在1.3及更早版本中,jQuery通過javascript的eval方法來解析json對象。在1.4中,jQuery使用了更嚴格的方法來解析json。所有的內(nèi)容都必須使用雙引號。
這點從jQuery.parseJSON(json) 可以看出,parseJSON在文檔中的解釋是:
接受一個JSON字符串,返回解析后的對象。
傳入一個畸形的JSON字符串會拋出一個異常。比如下面的都是畸形的JSON字符串:
{test: 1} ( test 沒有包圍雙引號)
{'test': 1} (使用了單引號而不是雙引號)
另外,如果你什么都不傳入,或者一個空字符串、null或undefined,parseJSON都會返回 null 。
您可能感興趣的文章:
- jQuery高級編程之js對象、json與ajax用法實例分析
- JQuery處理json與ajax返回JSON實例代碼
- jquery的ajax異步請求接收返回json數(shù)據(jù)實例
- jQuery Ajax異步處理Json數(shù)據(jù)詳解
- jQuery中使用Ajax獲取JSON格式數(shù)據(jù)示例代碼
- jquery用ajax方式從后臺獲取json數(shù)據(jù)后如何將內(nèi)容填充到下拉列表
- jsp中利用jquery+ajax在前后臺之間傳遞json格式參數(shù)
- 詳談 Jquery Ajax異步處理Json數(shù)據(jù).
- JQuery的ajax獲取數(shù)據(jù)后的處理總結(jié)(html,xml,json)
- jquery ajax跨域解決方法(json方式)
- 淺談JSON和JSONP區(qū)別及jQuery的ajax jsonp的使用
- jQuery使用ajax傳遞json對象到服務(wù)端及contentType的用法示例
相關(guān)文章
jQuery Mobile和HTML5開發(fā)App推廣注冊頁
jQuery Mobile和HTML5的組合可以直接開發(fā)web版的app,下面通過本教程給大家分享jQuery Mobile和HTML5開發(fā)App推廣注冊頁的實例代碼,感興趣的朋友參考下吧2016-11-11jquery實現(xiàn)的3D旋轉(zhuǎn)木馬特效代碼分享
這篇文章主要介紹了jquery實現(xiàn)的3D旋轉(zhuǎn)木馬特效,功能實現(xiàn)非常簡單,推薦給大家,有需要的小伙伴可以參考下。2015-08-08幾種二級聯(lián)動案例(jQuery\Array\Ajax php)
這篇文章主要為大家詳細介紹了幾種二級聯(lián)動案例(jQuery\Array\Ajax php),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08