javascript - 访问嵌套 JSON 对象和数组中的值

标签 javascript jquery arrays json

我正在使用 Blueimp 的 JQuery 文件上传插件,因此上传成功后的回调函数为:

$('#fileupload').fileupload('send', {files: filesList})
    .success(function (result, textStatus, jqXHR) { console.log('success'); })
    .error(function (jqXHR, textStatus, errorThrown) { console.log('error'); })
    .complete(function (result, textStatus, jqXHR) { 
        console.log('complete: ' + JSON.stringify(result));
        console.log(result.responseText.files[0].name);
});

所以我所关注的只是 .complete 函数。第一个 console.log 返回:

complete: {"readyState":4,"responseText":"{"files":[{"name":"video.mp4","type":"video/mp4","size":2348842}]}","responseJSON":{"files":[{"name":"video.mp4","type":"video/mp4","size":2348842}]},"status":201,"statusText":"Created"}

complete 从技术上讲是 result,其下是 responseText,其下是 files,这是一个数组,name 是该数组中的键/属性。

因此,当我尝试 console.log result.responseText.files[0].name 时,它显示 Uncaught TypeError: Cannot read property '0'未定义

有人可以找出问题所在吗? 谢谢!

最佳答案

result.responseText 是一个字符串

您需要转换为对象:JSON.parse(result.responseText)

response = JSON.parse(result.responseText);
console.log(response.files[0].name);

可以工作

关于javascript - 访问嵌套 JSON 对象和数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34834066/

相关文章:

c# - 下载文件时iframe onload

javascript - JS在跟踪代码推送方法中添加数组

javascript - XPATH - 如何选择在表中同一行的列中有多个值的 tr?

javascript - iframe 的 contentDocument

javascript - 在文本中保留撇号

javascript - 关闭时从 JQuery 对话框中删除数据

javascript - 选择复选框特定的列应该显示,其他的应该消失

javascript - 为什么我加载了 ajax 的 html 报告了错误的元素大小?

python - 为什么我的数组比较算法给我错误的输出?

python - 使用 del() 删除列表中的多个元素