将FileReader的结果转换为javascript对象

阿卜杜勒

我正在使用Javascript FileReader。我想读取FileReader的结果,然后将每条记录转换为JS对象。使用以下代码:

$("#csv").bind("change", function (event) {
            var reader = new FileReader();
            reader.onload = function (theFile) {
                try {
                    var input = $.csv.toArrays(theFile.target.result);
                    alert("CSV loaded successfully");
                    alert(input);
                }
                catch (e) {
                    alert("CSV Parse error.");
                    return;
                }
            };
            reader.readAsText(event.target.files[0]);
        });
    }

alert(input)将整个csv文件显示为字符串。如何从此输入创建javascript对象或JSON字符串数组?换句话说,我假设我需要在第一行中读取属性集,然后此后的每条记录都将创建一个具有属性集的对象,并将每个对象插入到数组中。

例如,来自以下字符串:

姓名,年龄,性别

约翰20岁,男

我想创建一个对象为:

{ Name: "John", Age: 20, Gender: "Male" }

提前致谢!

哈普雷特·辛格

使用RegEx

/[\w .]+(?=,?)/g

您可以按照您提到的格式从csv文件中提取数据(如果.csv文件的格式和数据不同,则需要更改RegEx)。

演示正则表达式

工作演示

样本数据访问 给定格式

Name,Age,Gender
John,20,Male
Cristine   ,34,FeMale
Kate Wilson,65,   FeMale
Mike,45,Male
Peter,23,Male
Katty,11,FeMale
Sandy,78,Mal

var str = $('#regex_string').val();
var extractValidString = str.match(/[\w .]+(?=,?)/g)

var noOfCols = 3
//in your case it is name,age,gender so we need 3

var objFields = extractValidString.splice(0,noOfCols);
//extract columns - First Row
var arr = [];
while(extractValidString.length>0) {
    var obj = {};
    //extract remaining rows one by one
    var row = extractValidString.splice(0,noOfCols)
    for(var i=0;i<row.length;i++) {
        //make an object and put each column and set its data
        obj[objFields[i]] = row[i].trim()
    }
    //push row to an array
    arr.push(obj)
}
console.log(arr);

//output
[Object, Object, Object, Object, Object, Object, Object]
    0: Object
        Age: "20"
        Gender: "Male"
        Name: "John"
    1: Object
        Age: "34"
        Gender: "FeMale"
        Name: "Cristine"
    2: Object
        Age: "65"
        Gender: "FeMale"
        Name: "Kate Wilson"
    3: Object
        Age: "45"
        Gender: "Male"
        Name: "Mike"
    4: Object
        Age: "23"
        Gender: "Male"
        Name: "Peter"
    5: Object
        Age: "11"
        Gender: "FeMale"
        Name: "Katty"
    6: Object
        Age: "78"
        Gender: "Male"
        Name: "Sandy"
        length: 7

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将javascript对象转换为json对象

来自分类Dev

将数组的对象转换为对象javascript

来自分类Dev

将javascript对象转换为json对象

来自分类Dev

将Javascript对象转换为Javascript数组

来自分类Dev

将大量数据库结果转换为javascript中的对象数组

来自分类Dev

将JSON对象转换为javascript数组

来自分类Dev

将List对象从javascript转换为JSON

来自分类Dev

将数组转换为对象javascript

来自分类Dev

将javascript对象转换为URL参数

来自分类Dev

将GeoJSON对象转换为Javascript数组

来自分类Dev

将CSV行转换为Javascript对象

来自分类Dev

将json转换为javascript对象

来自分类Dev

将数组转换为JavaScript中的对象

来自分类Dev

Javascript:将地图转换为对象数组

来自分类Dev

将JavaScript数组转换为JSON对象

来自分类Dev

Javascript:将数组转换为对象

来自分类Dev

将javascript数组转换为Java对象

来自分类Dev

将JSON对象转换为javascript数组

来自分类Dev

将json对象转换为javascript数组

来自分类Dev

javascript将json转换为对象

来自分类Dev

将变量转换为Json对象-Javascript

来自分类Dev

将JSON转换为JavaScript对象数组

来自分类Dev

将javascript对象转换为数字

来自分类Dev

无法将 javascript 对象转换为 json

来自分类Dev

将字典转换为 Javascript JSON 对象?

来自分类Dev

将 JavaScript 对象(数组)转换为 XML

来自分类Dev

将执行的SQL结果转换为Model对象的列表

来自分类Dev

将ActiveRecord MySQL结果转换为对象数组

来自分类Dev

使用嵌套的 JSON 对象将 SQLDataReader 结果转换为 JSON