【问题标题】:Accessing Data from Multidimensional Arrays -Ajax Response从多维数组访问数据 - Ajax 响应
【发布时间】:2018-12-20 19:22:20
【问题描述】:

我需要帮助从 ajax 响应 json 数组访问数据。

后端 PHP 脚本返回如下数组:

[
    [
        {
            AccessID: "178638920205",
            ActionDate: "2018-12-18 01:36:56",
            ActionDescription: "Richard Mahdi logged out at 2018-12-18 01:36:56 AM.",
            ActionType: "Log Out",
            Record_Number: "6890701492",
            ResponseLevel: "0",
            custNames: "Richard Mahdi",
            id: "9",
            thumbNameClass: "qRichardS",
            useThumbNail: "https://subdomain.domain.com/adminodocs2019001/richard686827.png"
        }
    ],
    [
        {
            AccessID: "178638920205",
            ActionDate: "2018-12-18 01:35:32",
            ActionDescription: "Richard Mahdi sent Feed Back. Feedback Type: Request. If Feedback is a complaint, you might want to address that immediately via direct communication. View Feedback message from Feedback Section",
            ActionType: "Feed Back",
            Record_Number: "6890701492",
            ResponseLevel: "5",
            custNames: "Richard Mahdi",
            id: "8",
            thumbNameClass: "gRichardB",
            useThumbNail: "https://subdomain.domain.com/adminodocs2019001/richard686827.png"
        }
    ],
    [
        {
            AccessID: "178638920205",
            ActionDate: "2018-12-18 01:33:25",
            ActionDescription: "Richard Mahdi sent Feed Back. Feedback Type: Complaints. If Feedback is a complaint, you might want to address that immediately via direct communication. View Feedback message from Feedback Section",
            ActionType: "Feed Back",
            Record_Number: "6890701492",
            ResponseLevel: "5",
            custNames: "Richard Mahdi",
            id: "7",
            thumbNameClass: "fRichardU",
            useThumbNail: "https://subdomain.domain.com/adminodocs2019001/richard686827.png"
        }
    ],
    [
        {
            AccessID: "178638920205",
            ActionDate: "2018-12-18 01:32:27",
            ActionDescription: "Richard Mahdi successfully completed Initial Account Setup. No action required.",
            ActionType: "Initial Account Setup",
            Record_Number: "6890701492",
            ResponseLevel: "0",
            custNames: "Richard Mahdi",
            id: "6",
            thumbNameClass: "tRichardD",
            useThumbNail: "https://subdomain.domain.com/adminodocs2019001/richard686827.png"
        }
    ]
]

尝试了几种处理数据和访问数组元素的方法。目前坚持:

var datatosend = { 'adminoID': "12345"};
 
$.ajax({
    url: "dtrack.php",
    data: datatosend,
    type: 'POST',
    contentType: false,
    processData: false,
    dataType: "json",
    cache: false,
    success: function(response){
        $.each(response,function(x,y){
            console.log(y.ActionDescription);
            alert(y.ActionDescription);
        });	 
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

感谢所有建议或解决方案。

【问题讨论】:

  • 什么?请将原始数据压缩为适用的位,然后告诉我们您要实现的目标。也就是,您目前如何尝试访问数据,您期望什么以及发生了什么。
  • 显然这应该有效,因为您正在迭代数组并访问根据示例存在于数组中的 ActionDescription 属性。您可以尝试从导航控制台打印数组并验证它是否作为 javascript 对象到达...此外,您还应该检查服务器是否有任何交叉请求阻塞
  • 您在“您如何尝试访问数据”时迷失了我。我认为这已经足够明显了。响应数据如图所示(感谢@meW 的正确编辑)。它是一个 ajax 响应,我想访问数组的每个元素。当前尝试:$.each(response,function(x,y){ console.log(y.ActionDescription); alert(y.ActionDescription);})。显然不起作用。
  • @MatiasAguirreLuco 谢谢。将验证响应是 json 对象。
  • @Scott Sauyet 感谢您的输入和编辑。吓坏了我无法复制你的建议,这应该很简单。第 100 次查看返回数组的 PHP 脚本。

标签: javascript arrays ajax multidimensional-array response


【解决方案1】:

我认为您希望在 success 处理程序中使用类似的内容:

response.forEach(x => x.forEach(y => {
  console.log(y.ActionDescription)
}))

您显然可以使用jQuery#each 做类似的事情,但没有理由在现代网络上使用它。 Array.prototype.forEach 很好。

该语言没有真正的多维数组。数组的数组尽可能接近。但是,如果内部数组每个都只有一个元素,我会敦促您将它们展平,因为它们毫无用处。

const response = [        
    [{"id":"9","ActionDate":"2018-12-18 01:36:56","custNames":"Richard Mahdi","Record_Number":"6890701492","AccessID":"178638920205","ActionType":"Log Out","ActionDescription":"Richard Mahdi logged out at 2018-12-18 01:36:56 AM.","ResponseLevel":"0","thumbNameClass":"qRichardS","useThumbNail":"https:\/\/subdomain.domain.com\/adminodocs2019001\/richard686827.png"}],
    [{"id":"8","ActionDate":"2018-12-18 01:35:32","custNames":"Richard Mahdi","Record_Number":"6890701492","AccessID":"178638920205","ActionType":"Feed Back","ActionDescription":"Richard Mahdi sent Feed Back. Feedback Type: Request. If Feedback is a complaint, you might want to address that immediately via direct communication. View Feedback message from Feedback Section","ResponseLevel":"5","thumbNameClass":"gRichardB","useThumbNail":"https:\/\/subdomain.domain.com\/adminodocs2019001\/richard686827.png"}],
    [{"id":"7","ActionDate":"2018-12-18 01:33:25","custNames":"Richard Mahdi","Record_Number":"6890701492","AccessID":"178638920205","ActionType":"Feed Back","ActionDescription":"Richard Mahdi sent Feed Back. Feedback Type: Complaints. If Feedback is a complaint, you might want to address that immediately via direct communication. View Feedback message from Feedback Section","ResponseLevel":"5","thumbNameClass":"fRichardU","useThumbNail":"https:\/\/subdomain.domain.com\/adminodocs2019001\/richard686827.png"}],
    [{"id":"6","ActionDate":"2018-12-18 01:32:27","custNames":"Richard Mahdi","Record_Number":"6890701492","AccessID":"178638920205","ActionType":"Initial Account Setup","ActionDescription":"Richard Mahdi successfully completed Initial Account Setup. No action required.","ResponseLevel":"0","thumbNameClass":"tRichardD","useThumbNail":"https:\/\/subdomain.domain.com\/adminodocs2019001\/richard686827.png"}]
]

response.forEach(x => x.forEach(y => {
  console.log(y.ActionDescription)
}))

【讨论】:

  • 是的!你做到了!谢谢。您的陈述“您显然可以使用 jQuery#each 做类似的事情,但没有什么理由在现代网络上使用它。Array.prototype.forEach 很好,”让我意识到我需要专注于生成数组的源.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-08
相关资源
最近更新 更多