访问嵌套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.log
result.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);
将工作
太谢谢你了!我会在11分钟内接受并提出您的答案:) –