从JSON对象创建JavaScript类

从JSON对象创建JavaScript类,javascript,Javascript,我有一个JSON文件,其中包含信息数据,我使用AJAX获取这些数据,并使用此函数获取这些数据 function fetchJSONFile(callback) { var httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = function() { if (httpRequest.readyState === 4) { if (httpRequest.st

我有一个JSON文件,其中包含信息数据,我使用AJAX获取这些数据,并使用此函数获取这些数据

function fetchJSONFile(callback) {
    var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function() {
        if (httpRequest.readyState === 4) {
            if (httpRequest.status === 200) {
                var data = JSON.parse(httpRequest.responseText);
                if (callback) callback(data);
            }
        }
    };
    httpRequest.open('GET', 'database.json');
    httpRequest.send(); 
}
我获取它并将其分配给当前类的对象:

fetchJSONFile(function(data){ 
    employes = Object.assign(new Employes(), ...data.Employes);
    console.log(employes);
})
我的JSON文件中的数据如下:

{

"Employes":[
        {
            "id": 1,
            "fullName": "Test Test"
        }
    ],
"Infos":[
        {
            "id": 1,
            "address": "Test Test test test test",
            "employes": 1
        }
  ]
}
我的问题是如何从JSON文件自动生成每种对象类型的类

例如,使用我的代码,我想在这里自动生成
Employes
Infos
类,而不必手动创建它们

fetchJSONFile(function(data){ 
        employes = Object.assign(new Employes(), ...data.Employes); //Generate Classes automatically here from data type
        console.log(employes);
    })

有什么解决方案吗?

JS本机没有与大多数OOP语言相同的类。您可能来自OOP背景,您应该了解JS

您将了解,实际上不必创建那些类。你可以通过简单的写作来实现(我认为)你想要的:

fetchJSONFile(function(data){ 
        employes = data.Employes; 
        // or, if you wish to make a copy
        //employes = data.Employes.map(e => {...e})
        console.log(employes);
    })

使
Employee
类接受响应中的对象作为构造函数参数,然后构建该对象。类似于
let employee=new employee(data.employees[0])
@IsaacVidrine我想
employees
是任意选择的,可以代表任何字符串?也许OP可以确认。您希望它们只具有与
employee
对象相同的属性,还是实际上是一个employee对象?在标准OOP语言(不是javascript术语)中,您是否试图基于JSON数据生成一个新类(可能是因为您不知道这些类将被调用),或者您只是在尝试动态实例化各种预定义类的对象?这两种方法在Javascript中都相对容易——顺便说一句,Javascript没有类(除了语法糖),但算法会有很大的不同。@Cat我想基于JSON数据生成新的类,例如在我的代码中,我有关于JSON的Employes和infos,所以我想在我的js代码上自动创建Employes和infos类
Employes
infos
类可能定义了方法。正如OP所说,他们希望自动生成这些类,我假设没有。虽然我明白了,但我可能误解了这个问题。我认为,考虑到他们正在调用
雇员
构造函数,它已经存在,他们只是不想显式引用它。但在重读了这个问题之后,我认为你是对的。我们应该从OP那里得到澄清。