访问嵌套JSON对象和数组

问题描述:

我使用Blueimp的JQuery的文件上传插件的值,所以在上传成功的回调函数是:访问嵌套JSON对象和数组

$('#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.logresult.responseText.files[0].name,它说Uncaught TypeError: Cannot read property '0' of undefined

请问有人能找到有什么问题吗? 谢谢!

result.responseText是一个字符串

你需要转换为一个对象:JSON.parse(result.responseText)

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

将工作

+0

太谢谢你了!我会在11分钟内接受并提出您的答案:) –