JSON数据通过jQuery AJAX请求

时间:2012-01-04 04:01:53

标签: jquery ajax json post

我在解析从php文件到JQuery的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

提前感谢您的帮助!

2 个答案:

答案 0 :(得分: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);

})

答案 1 :(得分:0)

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

引用你的json的开头,你可能想要“结果”:,而不是“结果”,