JavaScript对象结构问题
我在遍历从上传的文件数据返回的对象时遇到问题,但似乎返回的对象结构可能会阻止我捕获响应中每个对象的特定属性,或者我误解了应该如何访问此对象。当我记录data.length时,我得到995,我假设它是对象响应中的字符数。当我记录JavaScript对象结构问题,javascript,jquery,javascript-objects,for-in-loop,Javascript,Jquery,Javascript Objects,For In Loop,我在遍历从上传的文件数据返回的对象时遇到问题,但似乎返回的对象结构可能会阻止我捕获响应中每个对象的特定属性,或者我误解了应该如何访问此对象。当我记录data.length时,我得到995,我假设它是对象响应中的字符数。当我记录数据[prop]时,它会记录每个字符 这是我返回的文件对象数据: [ { "fieldname": "fileUpload", "originalname": "Screen Shot 2017-01-08 at 12.23.39 PM.png",
数据[prop]
时,它会记录每个字符
这是我返回的文件对象数据:
[
{
"fieldname": "fileUpload",
"originalname": "Screen Shot 2017-01-08 at 12.23.39 PM.png",
"encoding": "7bit",
"mimetype": "image/png",
"size": 39881,
"bucket": "test",
"key": "1/2017-01-23/screen-shot-2017-01-08-at-12.23.39-pm.png",
"acl": "public-read",
"contentType": "image/png",
"contentDisposition": null,
"storageClass": "STANDARD",
"metadata": null,
"location": "https://test.s3.amazonaws.com/1/2017-01-23/screen-shot-2017-01-08-at-12.23.39-pm.png",
"etag": "\"sfasgltg702o\""
},
{
"fieldname": "fileUpload",
"originalname": "Screen Shot 2017-01-08 at 12.21.04 PM.png",
"encoding": "7bit",
"mimetype": "image/png",
"size": 58386,
"bucket": "test",
"key": "1/2017-01-23/screen-shot-2017-01-08-at-12.21.04-pm.png",
"acl": "public-read",
"contentType": "image/png",
"contentDisposition": null,
"storageClass": "STANDARD",
"metadata": null,
"location": "https://test.s3.amazonaws.com/1/2017-01-23/screen-shot-2017-01-08-at-12.21.04-pm.png",
"etag": "\"151353j53j51u5j135ju\""
}
]
jQuery AJAX POST请求上载文件并将对象返回到数据:
$.ajax({
url: '/app/sign',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function(data){
console.log('upload successful! ' + data);
console.log('Just the key ' + data.length);
for(var prop in data){
console.log(data[prop]);
}
},
error: function(error){
console.log('error ' + JSON.stringify(error));
}
});
它只是一个JSON格式的字符串。您需要
JSON.parse
来转换为JS对象,或者使用$.getJSON()
它只是JSON格式的一个字符串。您需要JSON.parse
转换为JS对象,或者使用$。getJSON()
数据是一个JSON字符串,您必须使用JSON.parse
将其解析回一个对象数组,如下所示:
success: function(data){
var arr = JSON.parse(data);
// use arr as array
console.log(arr.length);
// arr[0] is the first object
}
0: {"fieldname": "fileUpload", ...}, 1: {"fieldname": "fileUpload", ...}
data
是一个JSON字符串,您必须使用JSON将其解析回一个对象数组
success: function(data){
var arr = JSON.parse(data);
// use arr as array
console.log(arr.length);
// arr[0] is the first object
}
0: {"fieldname": "fileUpload", ...}, 1: {"fieldname": "fileUpload", ...}
假设您要访问第一个字段名
,可以通过这种方式访问它数据[0]。字段名
。第二种情况也是如此:data[1]。fieldname
。为什么?因为您的数据是这样解释的:
success: function(data){
var arr = JSON.parse(data);
// use arr as array
console.log(arr.length);
// arr[0] is the first object
}
0: {"fieldname": "fileUpload", ...}, 1: {"fieldname": "fileUpload", ...}
假设您要访问第一个字段名
,可以通过这种方式访问它数据[0]。字段名
。第二种情况也是如此:data[1]。fieldname
。为什么?因为您的数据是这样解释的:
success: function(data){
var arr = JSON.parse(data);
// use arr as array
console.log(arr.length);
// arr[0] is the first object
}
0: {"fieldname": "fileUpload", ...}, 1: {"fieldname": "fileUpload", ...}