在没有输入的JavaScript中读取文本文件

时间:2014-03-21 20:11:12

标签: javascript json typescript filereader

希望这是一个简单的问题,但我想阅读一个使用JavaScript与我的.js文件位于同一位置的文本文件。我已经阅读了FileReader并了解了那里的API,但我见过的所有示例都使用<input type="file" />作为捕获File对象的方法必须由FileReader阅读。

此外,读取包含JSON数据的文本文件有多难?理想情况下,我只想将一些数据存储为JSON并使用JavaScript读取它。任何帮助将不胜感激。谢谢!

所以我得到了一些好的回答,但我会稍微扩展一下我的问题。到目前为止,感谢您提供的内容!

我使用TypeScript,所以jQuery有点棘手(使用投影)。但我发现了XMLHTTPRequest。这也是解决这个问题的好方法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

您只需将文本文件的位置打开为网址即可。该文件将以正常的GET请求发送到浏览器。当您想要读取JSON文件时,我建议使用JQuery。 JQuery有一个名为getJSON的内置函数,它只是将JSON文件中的数据作为JS对象返回

$.getJSON(
    url,
    function(data) {
       //json is converted in 'data' object
    }
);

答案 1 :(得分:1)

您是使用Node.js还是在浏览器中运行Javascript?您想阅读用户提供的文件或您的脚本已经知道的文件吗?我认为FileReader用于读取存储在用户计算机上的文件,这就是示例使用<input type="file" />标签的原因。

使用Node.js(不在浏览器中)本地运行,我读了这样的JSON文件:

var fileString = fs.readFileSync("./path/to/file/" + filename, {encoding: 'utf8'});
var fileObject = JSON.parse(fileString);

在浏览器中,您可以使用jQuery读取这样的文件:

var file_url = 'http://url/to/file/' + filename;
$.ajax({
    url: file_url,
    dataType: "json",
    success: function (json_response) {
        // Process the json_response
    },
    error: function () {
        // Handle the error.
    }
});

如果您最后以其他方式阅读文件,仍然可以在浏览器中使用JSON.parse()。我希望有所帮助!