2013-05-13 62 views
1

我正在使用JQuery來調用我的WCF服務。響應正文顯示我的JSON格式數據,但我不知道如何解析它。查看我的代碼,瞭解到目前爲止所做的工作。使用JQuery解析這個JSON

$.ajax({ 
      url: "http://wks52025:82/WcfDataService.svc/GetNotes()?$format=json", 
      type: "get", 
      datatype: "json", 
      success: function (data) { 
       $.each(data, function(i, item) { 
        alert(data[i].Title); 
       }) 
      } 
     }); 

    }); 

這是我的JSON

{ 
    "d": [ 
     { 
      "__metadata": { 
       "id": "http://wks52025:82/WcfDataService.svc/tblNotes(guid'93629a5f-2bb3-4190-b876-3d8a2997e76a')", 
       "uri": "http://wks52025:82/WcfDataService.svc/tblNotes(guid'93629a5f-2bb3-4190-b876-3d8a2997e76a')", 
       "type": "GenesisOnlineModel.tblNote" 
      }, 
      "NotesID": "93629a5f-2bb3-4190-b876-3d8a2997e76a", 
      "NotesTitle": "BSKYB", 
      "NotesText": "new Director of Brand and Media ", 
      "ParentID": 8879, 
      "ContactID": 309, 
      "JobID": 1000088150, 
      "UserID": "8b0e303a-68aa-49a5-af95-d994e2bdd5ac", 
      "GroupID": null, 
      "RelatedType": "Advertiser Contact", 
      "IsShared": true 
     }, 
     { 
      "__metadata": { 
       "id": "http://wks52025:82/WcfDataService.svc/tblNotes(guid'0f21866b-4a5c-417f-afe1-70ffbd1ce1f3')", 
       "uri": "http://wks52025:82/WcfDataService.svc/tblNotes(guid'0f21866b-4a5c-417f-afe1-70ffbd1ce1f3')", 
       "type": "GenesisOnlineModel.tblNote" 
      }, 
      "NotesID": "0f21866b-4a5c-417f-afe1-70ffbd1ce1f3", 
      "NotesTitle": "BSKYB More", 
      "NotesText": "Contacted all major contacts on this profile", 
      "ParentID": 8879, 
      "ContactID": null, 
      "JobID": null, 
      "UserID": "8b0e303a-68aa-49a5-af95-d994e2bdd5ac", 
      "GroupID": null, 
      "RelatedType": "Advertiser", 
      "IsShared": true 
     } 
    ] 
} 

在代碼,我在我的警惕越來越不確定我成功的功能塊。任何幫助都會很棒。

+0

嘗試將整個'data'變量打印到控制檯。一個想法是,由於關鍵「標題」不存在,這是問題而不是解析。 – 2013-05-13 13:51:16

+0

我使用Chrome的Web開發人員工具查看網絡請求和響應。它返回一個JSON體。我也可以鍵入服務URL來查看JSON。 – 2013-05-13 13:52:41

回答

4

關閉!在你成功的塊,請執行以下操作:

 success: function (data) { 
      $.each(data.d, function(i, item) { 
       alert(item.NotesTitle); 
      }) 
     } 

更新:實施@Johans評論。

+2

或只是'item.NotesTitle' – Johan 2013-05-13 13:50:36

+0

謝謝,現在更新:) – JAM 2013-05-13 13:51:24

+0

我upvoted這個,因爲它也是正確的。 – 2013-05-13 13:55:54

2

您正在提醒alert(data[i].Title);。通過JSON的外觀,JSON數組對象中的對象甚至都不具有Title屬性,這就是爲什麼你得到undefined。我看到NotesTitle但沒有Title。將其更改爲:

success: function (data) { 
    $.each(data.d, function(i, item) { 
      alert(item.NotesTitle); 
    }) 
} 
+0

感謝這工作。將數據更改爲data.d是我正在做的。我知道這是我小的東西:( – 2013-05-13 13:54:59

+0

我有,你的JQuery的實力太快了,所以:) – 2013-05-13 14:24:00