Доступ к данным массива JSON - PullRequest
       22

Доступ к данным массива JSON

0 голосов
/ 05 августа 2020

Итак, я пытаюсь перенести данные из файла Excel в таблицу, я могу получить данные из формата Excel в формате JSON, но теперь я пытаюсь использовать эти данные для вывода.

I есть эта функция, чтобы получить формат 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, поэтому надеюсь, что это не глупый вопрос.

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

<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>
0 голосов
/ 05 августа 2020

Когда у вас есть объект-массив «ExcelTo JSON», вы можете получить доступ к информации в нем, сначала войдя в массив:

ExcelToJSON[0] 

Это позволит вам получить доступ к элементам внутри первого массив. Затем вы можете легко использовать синтаксис объекта.

console.log(ExcelToJSON[0].Rep)

Ожидаемый результат сверху: «aa»

Ниже приведен пример этого с использованием фрагмента кода:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...