当前位置: 首页 > 知识库问答 >
问题:

读取JSON文件的有效方法?

百里疏珂
2023-03-14

我在NodeJS中看到过从本地读取JSON文件不同方法。像这样;

>

  • 方法

    使用fs库

    var fs = require('fs');
    var obj = JSON.parse(fs.readFileSync('file', 'utf8'));
    
    var fs = require('fs');
    var obj;
    fs.readFile('file', 'utf8', function (err, data) {
      if (err) throw err;
      obj = JSON.parse(data);
    });
    

    方法

    使用require()

    let data = require('/path/file.json');
    

    方法

    使用Ajax请求如何使用Jquery和Ajax从JSON文件中检索数据?

    可能还有别的办法。但是我听说使用方法1读取JSON文件比其他方法更有效。

  • 共有1个答案

    董桐
    2023-03-14

    方法3)不在考虑范围内,因为它将其他方法之一与网络请求相结合,所以您仍然必须选择其他方法之一。

    我假设方法2)正在泄漏内存。如果您两次需要的话,NodeJS将通过引用返回完全相同的东西:

     require("thing") === require("thing")
    

    因此,如果你只需要一次,它就会永远留在记忆中。这是快速的,如果你查找它多次,但如果你得到很多文件,它将填补内存。

    我个人倾向于选择4):

    将其存储在数据库中。数据库将数据加载到内存中以便更快地访问,并且它们的构建是为了处理大量文件。在处理JSON时,Mongodb将是一个不错的选择:

     const db = mongodb.collection("json");
    
     function getFile() {
        return db.findOne({ "name": "test" });
     }
    
     类似资料:
    • 问题内容: 我有一个很大的numpy 3D张量,它存储在磁盘上的文件中(通常使用来读取)。这是一个二进制文件。使用时,我很快就耗尽了大部分内存。 幸运的是,在程序的每次运行中,我只需要庞大张量的一部分即可。切片的尺寸固定,其尺寸由外部模块提供。 最好的方法是什么?我能弄清楚的唯一方法就是以某种方式将此矩阵存储到MySQL数据库中。但我敢肯定有 很多 更好/更简单的方法。如果有帮助,我也很乐意以其他

    • 本文向大家介绍AngularJS读取JSON及XML文件的方法示例,包括了AngularJS读取JSON及XML文件的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了AngularJS读取JSON及XML文件的方法。分享给大家供大家参考,具体如下:   JSON: 1)配置对应的控制器,将scope和http服务注入该控制器中。 2)使用$http.get(),把将要读取的数据文件

    • 问题内容: 我正在尝试使用该模块从python脚本读取json文件。经过一番谷歌搜索后,我发现以下代码: json文件的路径和名称在哪里。我收到以下错误: 问题答案: 该代码用作变量名。它将阴影您导入的模块引用。为变量使用其他名称。 除此之外,代码在接受字符串的同时传递文件对象。 传递文件内容: 或使用接受类似文件的对象。

    • 问题内容: 只是因为一个简单,易于表达的陈述使我的脸上有些错误,所以我有点头疼。 我有一个名为strings.json的json文件,如下所示: 我现在想读取json文件。我发现了以下这些语句,但是不起作用: 控制台上显示的错误是这样的: 已编辑 从更改为 并得到了这个: 问题答案: 该方法(“ load”中没有“ s”)可以直接读取文件: 您正在使用方法,该方法仅用于 字符串 参数。 编辑:新消

    • 我有一个名为Strings.json的json文件,如下所示: 我想读取json文件,现在仅此而已。我发现了这些说法,但它不起作用: 控制台上显示的错误是: 已编辑 从更改为 得到了这个:

    • 一个看起来简单、容易的陈述却让我犯了一些错误。 我有一个名为strings.json的JSON文件,如下所示: 我想阅读JSON文件,目前仅此而已。我发现了这些语句,但它不起作用: 控制台上显示的错误如下: 如果我使用<code>json。加载而不是<code>json。加载,我得到以下错误: