Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript对象结构问题_Javascript_Jquery_Javascript Objects_For In Loop - Fatal编程技术网

JavaScript对象结构问题

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",

我在遍历从上传的文件数据返回的对象时遇到问题,但似乎返回的对象结构可能会阻止我捕获响应中每个对象的特定属性,或者我误解了应该如何访问此对象。当我记录data.length时,我得到995,我假设它是对象响应中的字符数。当我记录
数据[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", ...}