2013-12-16 39 views
0

我這樣發送GET請求INT正確的JSON響應:不能形成對客戶端

$.ajax({ 
    url: myUrl, 
    type:"GET", 
    dataType: "json", 
    success: callback   
}); 

在服務器端,我形成了以下json字符串,並將其發送給客戶端:

"{'composers': 
    {'composer': 
     { 
     'id':2, 
     'firstName': 'Arcangelo', 
     'lastName': 'Corelli' 
     } 
    }, 
    {'composer': 
     { 
     'id':7, 
     'firstName': 'Antonio', 
     'lastName': 'Vivaldi' 
     } 
    } 
}" 

客戶端只是一無所獲! 但如果我使用XML格式的響應,它工作正常!我正在設置像這樣的內容類型:

response.setContentType("application/json"); 
+0

有疑問時,http://jsonlint.com/驗證您的JSON –

回答

2

的JSON需要做composers屬性的數組:

{ 
    "composers": [ 
     { 
      "composer": { 
       "id": 2, 
       "firstName": "Arcangelo", 
       "lastName": "Corelli" 
      } 
     }, 
     { 
      "composer": { 
       "id": 7, 
       "firstName": "Antonio", 
       "lastName": "Vivaldi" 
      } 
     } 
    ] 
} 

我也建議一個更苗條的版本,可以刪除作曲家的屬性,因爲分配數組的屬性composers非常直觀,包含作曲家對象。

{ 
    "composers": [ 
     { 
       "id": 2, 
       "firstName": "Arcangelo", 
       "lastName": "Corelli" 
     }, 
     { 
       "id": 7, 
       "firstName": "Antonio", 
       "lastName": "Vivaldi" 
     } 
    ] 
} 

此外,JSON使用雙引號而不是單引號,因此您需要根據需要進行替換。

當您在未來遇到這些類型的問題時,請將您的JSON轉到json lint進行驗證,它會告訴您所有問題。

2

我相信你的JSON格式不正確。

composers元素看起來就像是一個數組和JSON應該更像:

{"composers": 
    [ 
     { 
     "id":2, 
     "firstName": "Arcangelo", 
     "lastName": "Corelli" 
     }, 
     { 
     "id":7, 
     "firstName': "Antonio", 
     "lastName': "Vivaldi" 
     } 
    ] 
} 
2

您有JSON錯誤。修理它。

"{'composers':[ 
    {'composer': 
     { 
     'id':2, 
     'firstName': 'Arcangelo', 
     'lastName': 'Corelli' 
     } 
    }, 
    {'composer': 
     { 
     'id':7, 
     'firstName': 'Antonio', 
     'lastName': 'Vivaldi' 
     } 
    } 
    ] 
}" 
0

試試這個:

{ 
    "composers": [ 
     { 
      "composer": { 
       "id": 2, 
       "firstName": "Arcangelo", 
       "lastName": "Corelli" 
      } 
     }, 
     { 
      "composer": { 
       "id": 7, 
       "firstName": "Antonio", 
       "lastName": "Vivaldi" 
      } 
     } 
    ] 
} 


and check your json is valid or not using jsonlint