【发布时间】:2016-03-16 21:58:03
【问题描述】:
在将文本file 上传到浏览器时,我想检查文件内容并在必要时对其进行操作,然后再将其发送到 Web 服务。
其他详情:
我正在上传标准化的 csv 文件,我想添加包含元信息的第一行,以防它丢失。之后,我将 csv 反序列化为 json 对象数组,而属性以元信息命名。
编辑 1:添加代码、库和框架信息
我正在使用流星,我使用papaparse 将数据从 csv 转换为 json。
查看:
input(type='file' name='import idx' class='myFileInput')
JS:
'change .myFileInput': function(event, template) {
FS.Utility.eachFile(event, function(file) {
console.log(file); // works; contains a FILE object
// TODO: check if file has a valid structure & add the meta data if it's missing
var REObjects = Papa.parse(file, {
delimiter: "#",
header: true,
complete: function(results, file) {
console.log("Parsing complete:", results, file); // works, contains JSON data
}
});
});
【问题讨论】:
-
等等,你是发送 CSV 还是 JSON 到服务器?
-
JSON(我上传了csv文件并转换成json)
-
您在 JSON.parse() 之前将它作为一个字符串,对吗?只需在 parse()ing 之前检查该字符串并在需要时添加头部
-
实际上我正在使用一个名为 papaparse 的第 3 方库将数据从 csv 转换为 json,所以我不确定我是否可以在某个时候挂钩..
-
你不能。您使用 FileReader 获取文件(这实际上是一个装饰的 Blob),然后进行一些更改,然后使用结果创建一个新的 Blob,并将其提供给您期望文件的东西。如果您需要模拟输入,只需使用
{files:[myBlob]}
标签: javascript json file csv