【问题标题】:Accessing JSON array data访问 JSON 数组数据
【发布时间】:2020-11-25 02:55:51
【问题描述】:

所以我正在尝试将数据从 excel 文件获取到表格,我可以将数据从 excel 获取到 JSON 格式,但现在我正在尝试使用这些数据来输出。

我有这个函数可以把excel转成JSON格式:

    var ExcelToJSON = function() {

    this.parseExcel = function(file) {
        var reader = new FileReader();

        reader.onload = function(e) {
            var data = e.target.result;
            var workbook = XLSX.read(data, {
                type: 'binary'
            });
            workbook.SheetNames.forEach(function(sheetName) {
                // Here is your object
                var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
                var json_object = JSON.stringify(XL_row_object);
                console.log(JSON.parse(json_object));
                jQuery( '#xlx_json' ).val( json_object );
            })
        };

        reader.onerror = function(ex) {
            console.log(ex);
        };

        reader.readAsBinaryString(file);
    };
};

会输出如下内容:

const data = 
      [ { Rep:            'aa'
        , Type:           'SO'
        , Number:         '11'
        , Client:         'test'
        , Revenue:        '4025'
        , Equipment:      '-2240'
        , Share:          '0'
        , Other:          '0'
        , Date:           '15-5-2020'
        , Paidinfulldate: '10-7-2020'
        } 
      , { Rep:            'aa'
        , Type:           'SO'
        , Number:         '111'
        , Client:         'test'
        , Revenue:        '7104'
        , Equipment:      '-5334.4704'
        , Share:          '0'
        , Other:          '0'
        , Date:           '25-5-2020'
        , Paidinfulldate: '16-7-2020'
        } 
      , { Rep:            'aa'
        , Type:           'SO'
        , Number:         '111'
        , Client:         'test'
        , Revenue:        '675'
        , Equipment:      '-400'
        , Share:          '0'
        , Other:          '0'
        , Date:           '2-6-2020'
        , Paidinfulldate: '10-7-2020'
        } 
      , { Rep:            'aa'
        , Type:           'SO'
        , Number:         '111'
        , Client:         'test'
        , Revenue:        '2000'
        , Equipment:      '-1200'
        , Share:          '0'
        , Other:          '0'
        , Date:           '9-6-2020'
        , Paidinfulldate: '10-7-2020'
        } 
      , { Rep:            'aa'
        , Type:           'SO'
        , Number:         '111'
        , Client:         'test'
        , Revenue:        '770'
        , Equipment:      '-336'
        , Share:          '0'
        , Other:          '0'
        , Date:           '15-6-2020'
        , Paidinfulldate: '16-7-2020'
        } 
      , { Rep:            'aa'
        , Type:           'SO'
        , Number:         '111'
        , Client:         'test'
        , Revenue:        '0'
        , Equipment:      '0'
        , Share:          '0'
        , Other:          '15'
        , Date:           '20-7-2020'
        } 
      ] 

但在此之后,我想访问此数据以在其他函数中使用此数据进行计算,例如收入。

我对 javascript 很陌生,所以我希望这不是一个愚蠢的问题。

【问题讨论】:

    标签: javascript arrays json excel sorting


    【解决方案1】:

    一旦你有了数组对象“ExcelToJSON”,你就可以通过首先进入数组来访问其中的信息:

    ExcelToJSON[0] 
    

    这将允许您访问第一个数组中的元素。然后,您可以轻松地使用对象语法。

    console.log(ExcelToJSON[0].Rep)
    

    上面的预期结果:“aa”

    使用代码 sn-p 的示例如下:

    var excelToJSON =  [{"Rep":"aa","Type":"SO","Number":"11","Client":"test","Revenue":"4025","Equipment":"-2240","Share":"0","Other":"0","Date":"15-5-2020","Paidinfulldate":"10-7-2020"},{"Rep":"aa","Type":"SO","Number":"111","Client":"test","Revenue":"7104","Equipment":"-5334.4704","Share":"0","Other":"0","Date":"25-5-2020","Paidinfulldate":"16-7-2020"},{"Rep":"aa","Type":"SO","Number":"111","Client":"test","Revenue":"675","Equipment":"-400","Share":"0","Other":"0","Date":"2-6-2020","Paidinfulldate":"10-7-2020"},{"Rep":"aa","Type":"SO","Number":"111","Client":"test","Revenue":"2000","Equipment":"-1200","Share":"0","Other":"0","Date":"9-6-2020","Paidinfulldate":"10-7-2020"},{"Rep":"aa","Type":"SO","Number":"111","Client":"test","Revenue":"770","Equipment":"-336","Share":"0","Other":"0","Date":"15-6-2020","Paidinfulldate":"16-7-2020"},{"Rep":"aa","Type":"SO","Number":"111","Client":"test","Revenue":"0","Equipment":"0","Share":"0","Other":"15","Date":"20-7-2020"}]
    
    excelToJSON.forEach(thingy =>{console.log(thingy.Revenue)})

    您可以使用以下方法访问数组的第二个分区中的元素:

    excelToJSON[1]
    

    等等……

    但是,如果您只想获取此数组的某些部分,我建议您查看地图。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

    【讨论】:

    • 当我尝试实现这一点时,我收到一条错误消息,说它无法读取例如“收入”未定义。
    • 您的问题在我发布此答案后已被编辑。您应该使用 data[0].revenue.
    【解决方案2】:

    <script>
    var array = [{"Rep":"aa","Type":"SO","Number":"11","Client":"test","Revenue":"4025","Equipment":"-2240","Share":"0","Other":"0","Date":"15-5-2020","Paidinfulldate":"10-7-2020"},{"Rep":"aa","Type":"SO","Number":"111","Client":"test","Revenue":"7104","Equipment":"-5334.4704","Share":"0","Other":"0","Date":"25-5-2020","Paidinfulldate":"16-7-2020"},{"Rep":"aa","Type":"SO","Number":"111","Client":"test","Revenue":"675","Equipment":"-400","Share":"0","Other":"0","Date":"2-6-2020","Paidinfulldate":"10-7-2020"},{"Rep":"aa","Type":"SO","Number":"111","Client":"test","Revenue":"2000","Equipment":"-1200","Share":"0","Other":"0","Date":"9-6-2020","Paidinfulldate":"10-7-2020"},{"Rep":"aa","Type":"SO","Number":"111","Client":"test","Revenue":"770","Equipment":"-336","Share":"0","Other":"0","Date":"15-6-2020","Paidinfulldate":"16-7-2020"},{"Rep":"aa","Type":"SO","Number":"111","Client":"test","Revenue":"0","Equipment":"0","Share":"0","Other":"15","Date":"20-7-2020"}]
    for(var i = 0; i < array.length; i++){
        console.log(array[i]['Revenue']);
    }
    console.log(array[0]['Revenue']);
    </script>

    【讨论】:

      猜你喜欢
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多