使用Javascript将CSV从URL解析为Array

时间:2015-06-22 19:30:01

标签: javascript html arrays csv

我对javascript相对较新,但我希望从在线保存的csv文件中获取一些数据并每小时更新一次。

数据应该稍后显示在表格中,但是我将它保存到数组时遇到一些问题。 csv文件是逗号分隔的,有9列,超过6000行,是一长串文本,所以没有换行符。第一行包含用户名,每个带有特殊字符的用户名都用引号括起来。

我在过去几天尝试了几个代码,但都没有用。我可以将在线CSV文件解析成阵列吗?有没有像SQL一样的替代方案或将文件保存到我的服务器?

请记住:文件每小时都会更新..

注意:我发现的代码没有真正的问题,所有这些都经过了其他人的测试,似乎也有效。但仅适用于本地文件,而不是实际的URL!

2 个答案:

答案 0 :(得分:1)

您可以使用此https://code.google.com/p/jquery-csv/插件,可以使用$.csv.toArrays(csv)将多行csv转换为2D数组,或使用$.csv.toObjects(csv)转换为对象。查看this帖子或this一个以获取更多信息

$.ajax({
    url: "urlto/filename.csv",
    success: function (data) {
        var arr = $.csvtoArray(data);
        _oncomplete(arr);
    },
    dataType: "text",
    });

_oncomplete: function (arr) {
    //Your array here
    }

答案 1 :(得分:0)

您可以查看papaparse,了解功能齐全的CSV解析库。

setInterval javascript函数允许您每小时更新一次数据,以防您决定在客户端开发此部件。

  

是否有类似SQL的替代方案或将文件保存到我的服务器?

是的,有其他选择,正确的架构取决于您的用例。有多少访问者会访问您的网页并查看结果,您的应用程序的重要程度,数据源的可靠性等等。如果您不确定这些,您应该与具有更多经验的Web开发人员交谈这些问题。

您可能希望每小时在服务器上解析CSV文件,并在那里存储数据副本,以便为访问者提供服务。这样,如果上游数据源不可用,您仍然拥有过去数据的副本。

P.S。:

  

我在过去几天尝试了几个代码,但都没有用

stackOverflow就是这样的:获取有关代码中特定问题的帮助,而不是询问一般性问题(使用搜索引擎轻松可以找到答案)。