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

时间:2016-01-17 01:23:48

标签: javascript jquery arrays json

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

$('#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' of undefined

有人可以找到什么问题吗? 谢谢!

1 个答案:

答案 0 :(得分:3)

,是一个字符串

您需要转换为对象:result.responseText

JSON.parse(result.responseText)

将起作用