【问题标题】:Read Text File in JavaScript Without Input在没有输入的情况下用 JavaScript 读取文本文件
【发布时间】:2014-04-29 09:37:38
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript json typescript filereader


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您是使用 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()。希望对您有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-02
        • 2022-07-07
        • 2020-06-02
        • 2016-04-14
        • 1970-01-01
        • 1970-01-01
        • 2012-02-24
        • 2015-02-27
        相关资源
        最近更新 更多