如何将上传的csv转换为angularjs中的json对象
这就是我们尝试过的。如何将上传的csv转换为angularjs中的json对象,angularjs,Angularjs,这就是我们尝试过的。 确实如此。您可以编写一个函数将CSV转换为JSON,并将CSV对象传递给它。您需要做的就是将CSV的第一行保存为标题(您可以用逗号标识它们),并可以用换行符标识新条目\n 完成我在下面写的函数 var app = angular.module('myngCsv', [ngcsv]); app.controller('ngcsvCtrl', function($scope,$csv) { $scope.csv ={ content: null;
确实如此。您可以编写一个函数将CSV转换为JSON,并将CSV对象传递给它。您需要做的就是将CSV的第一行保存为标题(您可以用逗号标识它们),并可以用换行符标识新条目
\n
完成我在下面写的函数
var app = angular.module('myngCsv', [ngcsv]);
app.controller('ngcsvCtrl', function($scope,$csv) {
$scope.csv ={
content: null;
header: true,
headerVisible: true,
separator: ',',
separatorVisible: true,
result: null,
encoding: 'ISO-8859-1',
encodingVisible: true,
accept: ".csv"
};
});
函数csvToJSON(csv,回调){
变量行=csv.split(“\n”);
var结果=[];
var headers=行[0]。拆分(“”,“”);
对于(变量i=1;ifunction csvToJSON(csv, callback) {
var lines = csv.split("\n");
var result = [];
var headers = lines[0].split(",");
for (var i = 1; i < lines.length - 1; i++) {
var obj = {};
var currentline = lines[i].split(",");
for (var j = 0; j < headers.length; j++) {
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
if (callback && (typeof callback === 'function')) {
return callback(result);
}
return result;
}
创建工厂以将csv数据转换为json数据
app.directive('fileReaderDirective', function() {
return {
restrict: "A",
scope: {
fileReaderDirective: "=",
},
link: function(scope, element) {
$(element).on('change', function(changeEvent) {
var files = changeEvent.target.files;
if (files.length) {
var r = new FileReader();
r.onload = function(e) {
var contents = e.target.result;
scope.$apply(function() {
scope.fileReaderDirective = contents;
});
};
r.readAsText(files[0]);
}
});
}
};
});
app.factory('readFileData',function(){
返回{
processData:函数(csv_数据){
var record=csv_data.split(/\r\n |\n/);
var headers=记录[0]。拆分(',');
var行=[];
var json={};
对于(变量i=0;i
查看工作示例:您可以尝试使用外观非常简单和优雅的用法谢谢回复,我会尝试。谢谢回复,我会尝试回答,我会尝试
app.directive('fileReaderDirective', function() {
return {
restrict: "A",
scope: {
fileReaderDirective: "=",
},
link: function(scope, element) {
$(element).on('change', function(changeEvent) {
var files = changeEvent.target.files;
if (files.length) {
var r = new FileReader();
r.onload = function(e) {
var contents = e.target.result;
scope.$apply(function() {
scope.fileReaderDirective = contents;
});
};
r.readAsText(files[0]);
}
});
}
};
});
app.factory('readFileData', function() {
return {
processData: function(csv_data) {
var record = csv_data.split(/\r\n|\n/);
var headers = record[0].split(',');
var lines = [];
var json = {};
for (var i = 0; i < record.length; i++) {
var data = record[i].split(',');
if (data.length == headers.length) {
var tarr = [];
for (var j = 0; j < headers.length; j++) {
tarr.push(data[j]);
}
lines.push(tarr);
}
}
for (var k = 0; k < lines.length; ++k){
json[k] = lines[k];
}
return json;
}
};
});