2012-01-04 222 views
2

我已經解析JSON數據從php文件到JQuery的問題。我有一個相當困難的時間找到最合適的方式做到這一點,任何幫助將不勝感激。它需要在一個函數通過jQuery AJAX請求的JSON數據

當時我已經得到了點的時刻:

$.ajax({ 

    url: "Scripts/Interactions.php", 
    type: "POST", 
    dataType: "json", 
    success: function(data){ 
     $.each(data, function(i, grab){ 
     alert(grab.AgentFullName); 

     }) 

    } 

}) 

雖然這個作品,有一個問題是它的第一行之前呈現一排「未定義」,不不管我建議什麼專欄。

以下是我的Json輸出數據的示例。在本文中,大多數情況下只是隨機的Ipsum Lorem,因爲我還處於開發的早期階段。我通過各種在線json格式檢查器檢查了數據,並且它回來有效。

http://pastebin.com/KFKtiSD4

在此先感謝您的幫助!

回答

0
[ 
    "results", 
    { 
     "InteractionID":"1", 
     "AgentFullName":"Peter Germein", 

指你的JSON的開始,你可能想要把「成果」:,而不是「結果」,

+0

謝謝,這就是我要去的地方。但是,我將如何糾正這在我的PHP文件。它使用json_ncode。這可能是沒有足夠的信息,所以你可以在這裏找到Interactions.php的內容: [link] http://pastebin.com/3KjDG0sF – Poika 2012-01-04 04:32:12

+0

試試這個,在第12行** $ return_arr = array(「results」); **,將數組(「結果」)更改爲array()。然後在第33行和第37行之間的任何一行中,放入** $ temp_arr = array(); $ temp_arr [「results」] = $ return_arr; $ return_arr = $ temp_arr; **(該點是將json數組設置爲數組索引或列稱爲結果) – vicker313 2012-01-04 04:52:39

+0

先生,你是一個完整的傳奇!感謝您的時間! – Poika 2012-01-04 04:55:27

2

數組中的第一個元素不是一個對象,它是一個字符串。這就是爲什麼當你說grab.AgentFullName時,第一個元素沒有定義 - 字符串「results」沒有這樣的屬性。

你可以改變

[ 
    "results", 
    { 
     "InteractionID":"1", 
     "AgentFullName":"Peter Germein", 
     "InteractTopics":"Behaviour, Attendance, Attitude, Performance, Closing", 
     "InteractDiscussion":"Cras at nisl lorem, a lacin...", 
     "InteractAction":"Morbi quis nunc in odio eg...", 
     "InteractNotes":"Quisque et ante ut nis..." 
    }, 

[ 
    { 
     "InteractionID":"1", 
     "AgentFullName":"Peter Germein", 
     "InteractTopics":"Behaviour, Attendance, Attitude, Performance, Closing", 
     "InteractDiscussion":"Cras at nisl lorem, a lacin...", 
     "InteractAction":"Morbi quis nunc in odio eg...", 
     "InteractNotes":"Quisque et ante ut nis..." 
    }, 

或者是你想這樣做:

{ 
    "results": [ 
    { 
     "InteractionID":"1", 
     "AgentFullName":"Peter Germein", 
     "InteractTopics":"Behaviour, Attendance, Attitude, Performance, Closing", 
     "InteractDiscussion":"Cras at nisl lorem, a lacin...", 
     "InteractAction":"Morbi quis nunc in odio eg...", 
     "InteractNotes":"Quisque et ante ut nis..." 
    }, 
    { 
     "InteractionID":"2", 
     "AgentFullName":"Peter Germein", 
     "InteractTopics":"Behaviour, Attendance, Attitude, Performance, Closing", 
     "InteractDiscussion":"....", 
     "InteractAction":"Morbi quis nunc in ...", 
     "InteractNotes":"Quisque et ante ut nisi ..." 
    }, 

這將是解析如下:

$.each(data.results, function(i, grab){ 
    alert(grab.AgentFullName); 

}) 
+0

感謝,後者正是我要去對於。但是,我將如何糾正這在我的PHP文件。它使用json Encode。這可能是沒有足夠的信息,所以你可以在這裏找到Interactions.php的內容: [鏈接] http://pastebin.com/3KjDG0sF – Poika 2012-01-04 04:26:44

+0

@Poika - 我不是一個PHP的傢伙。我會問一個關於如何序列化PHP數據以獲得所需內容的新問題。 – 2012-01-04 04:28:09