最初的回答:
我希望从CSV文件的内容创建一个JSON对象。使用FileReader API本地加载CSV文件似乎可以工作,但是我在按照所需的方式构建JSON时遇到了麻烦。
我的CSV文件加载代码如下:
我的CSV文件加载代码如下:
<!DOCTYPE html>
<html>
<body>
<p>Select local CSV File:</p>
<input id="csv" type="file">
<output id="out"> input file content</output>
<script>
var fileInput = document.getElementById("csv"),
readFile = function () {
var reader = new FileReader();
reader.onload = function () {
// Display CSV file contents
document.getElementById('out').innerHTML = reader.result;
};
reader.readAsBinaryString(fileInput.files[0]);
};
fileInput.addEventListener('change', readFile);
</script>
</body>>
</html>
上面的代码允许我加载CSV文件的内容并在当前页面上显示它们。为了将CSV数据结构化为上述所需的格式,我尝试了以下方法,但对我来说没有起作用:
原始答案: Original Answer
<!DOCTYPE html>
<html>
<body>
<script>
var fileReader = new FileReader();
function getFile(inputFile) {
let file = inputFile.files[0];
fileReader.readAsText(file);
}
function csvJSON(csv){
var lines=csv.split("\n");
var result = [];
var headers=lines[0].split(",");
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split(",");
for(var j=0;j<headers.length;j++){
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return JSON.stringify(result); //JSON
}
function readFile(evt) {
let parsed = csvJSON(evt.target.result);
return parsed;
}
</script>
</body>
</html>
我该如何获取我期望的JSON对象?欢迎提供任何建议。
最初的回答:
\n
... - War10ck