2015-09-02 2 views
0

Я пытаюсь прочитать загруженный xlsx поиск и попытаться преобразовать массив массива в объект пары json key value. так я пытаюсь ниже фрагмент кодаsails: как преобразовать массив массива в объект json

var fs = uploadedFiles[0].fd; 
var xlsxRows = require('xlsx-rows'); 
var rows = xlsxRows(fs); 
var json = JSON.stringify(rows); 
console.log(json); 

Это показывает результат как массив массивов

[ [ 'Name', 'Age', 'Address' ], 
    [ 'Raj', '43', 'trichy' ], 
    [ 'Krthi', '23', 'trichy' ], 
    [ 'vel', '24', 'trichy' ] ] 

, но мне нужно, чтобы сохранить это в качестве ключа юдоли пары объекта JSON.

[{'Name':'Raj', 
'Age':'43', 
'Addess':'tichy'}, 
{'Name':'Krthi', 
'Age':'23', 
'Addess':'tichy'}, 
{'Name':'Vel', 
'Age':'24', 
'Addess':'tichy'} 
] 

как я могу достичь this..can любой из помочь мне решить эту проблему

ответ

2

Вы можете повторно проанализировать полученные строки и построить JSON себя

// your existing code 
var fs = uploadedFiles[0].fd; 
var xlsxRows = require('xlsx-rows'); 
var rows = xlsxRows(fs); 

// retrieve headers (i.e. remove first row) 
var headers = rows.shift(); 

// then build the json for each row 
var result = rows.map(function(row) { 
    var jsonRow = {}; 
    row.forEach(function(cellValue, cellIndex) { 
     jsonRow[headers[cellIndex]] = cellValue; 
    }); 
    return jsonRow; 
}); 

или вы может просто использовать модуль, который сделает это за вас, например xlsx-json;

UPDATE

Если я выполнить приведенный выше код с образцами данных, я получаю именно выход вы ожидаете, а именно (выход, полученный с JSON.stringify(result)):

[ 
    { 
    "Name": "Raj", 
    "Age": "43", 
    "Address": "trichy" 
    }, 
    { 
    "Name": "Krthi", 
    "Age": "23", 
    "Address": "trichy" 
    }, 
    { 
    "Name": "vel", 
    "Age": "24", 
    "Address": "trichy" 
    } 
] 
+0

Это показывает ошибку например, «Type»: Object [[«Name», «Age», «Address»], [«Martin», «43», «trichy»], [«Krthi», «23», «trichy»], ["vel "," 24 "," trichy "]] не имеет никакого метода 'shift' – Martin

+0

Неплохо, я использовал неверную переменную, она должна быть' rows' вместо 'json'. – Val

+0

Модуль Xlsx-json также возвратил значение как массив json. – Martin

Смежные вопросы