如何将数据从 JSON 文件传递​​到 JavaScript class

How to pass data from a JSON file to a JavaScript class

我有一个具有以下结构的本地 JSON 文件:

{ "project_id": 324,
  "project_name": "Project",
  "contributors": [
       { "name": "James", "dpto": "dpto1" },
       { "name": "Carl", "dpto": "dpto2" }] }

和一个 class 项目,我不确定应该是这样的:

class project {
     constructor(id, name, contributors){
        this.id = id;
        this.name = name;
        this.contributors = contributors; 

现在,我可以在使用 fetch 后处理数据,但我不知道如何在响应之外使用它。

我想获取 JSON 文件并将其放入 class 我可以在响应之外使用。 类似于:

.fetch('project.json')
   .then(function (response) {
       return response.json();
   })
   .then(function (data) {
      // Class Project = data;
   })
   .catch(function (err) {
      console.log('error: ' + err);
});

//The data now can be used directly through the class.
Project.CallFunction();

我需要对这些数据进行相当多的操作,而且我对 JavaScript 不是很精通,所以我想把它带到一个更熟悉的领域,并且有一些更具体的东西可以使它更易于使用。

您可以有一个采用 JSON 的构造函数,也可以有一个 returns 来自数据的 class 实例的静态方法。

以你的例子为例,这意味着:

const project = await fetch('project.json')
   .then(function (response) {
       return response.json();
   })
   .then(function (data) {
      return new Project(data);
   })
   .catch(function (err) {
      console.log('error: ' + err);
   });

project 将成为 Project class 的实例并包含数据。