从JSON模式生成JavaScript类

从JSON模式生成JavaScript类,javascript,json,Javascript,Json,我有一个JSON文件,其中包含关于我工作的信息和数据,如下所示: { "Employes":[ { "id": 1, "fullName": "Test Test" } ], "Infos":[ { "id": 1, "address": "Test Test test test test", "employes": 1

我有一个JSON文件,其中包含关于我工作的信息和数据,如下所示:

{
"Employes":[
        {
            "id": 1,
            "fullName": "Test Test"
        }
    ],
"Infos":[
        {
            "id": 1,
            "address": "Test Test test test test",
            "employes": 1
        }
  ]
}
我想在JS代码上自动生成
Employes
Infos
类,并向其中添加一些方法

fetchJSONFile这是一个使用AJAX从JSON文件获取数据的函数:

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', 'datas.json');
    httpRequest.send(); 
}
所以,在generate函数中,我想自动生成类并为其分配对象,我尝试这样做:

function generate(nameOfObject){
        fetchJSONFile(function(data){
            employes = Object.assign(new Employes(), ...data[nameOfObject]);
            console.log(employes);
        });
    }
在这一行中,我将JSON对象分配给我的
Employes()
类,我的问题是如何生成
Employes()
自动分配JSON类型,因此如果是
Infos
例如new
Employes()
变为new
Infos()
。。。等等

我想这样做,向这些类添加一些函数,比如
addNew()
deleteOne()
。。。。等等,都是关于积垢的


有什么解决方案吗?

如果返回的对象只有两个键,您可以
通过条目映射
,并创建如下两个数组变量:

如果您有两个以上的属性,则可以在内部
映射中使用
开关

function Employee(){this.defaultEmployeeProp=“default”}
函数Infos(){this.defaultInfosProp=“default”}
const data={“雇员”:[{“id”:1,“全名”:“Test Test”}],“Infos”:[{“id”:1,“地址”:“Test Test”,“雇员”:1}]}
const[employees,infos]=Object.entries(data.map)([key,values])=>
values.map(e=>Object.assign(key===“Employes”?新员工():新信息(),e))
)
console.log(员工)

console.log(infos)
您可以创建一个
DynamicClass
类,该类接受输入值和
type
,该类可以是
Employes,infos…

function DynamicClass (data, type) {
  this.type = type;
  // Init function
}
DynamicClass.prototype.xxxx = function () {}
现在可以使用数据对象创建类

fetchJSONFile(function(data){
  for(var key in data) {
    var classObj  = new DynamicClass(data[key], key);
  }
});

我想这可能已经在这里讨论过了,先生,这里的问题是,如果我在JSON文件中添加新类型,我需要手动创建类。我想自动生成类所有类型的类是否具有相同的
原型
@sayou@varunagarwal,此时所有这些类都有相同的方法,(只是CRUD)@sayou如果所有项都有相同的行为,请创建一个泛型类,然后
Object.assign(new-GenericClass(),e)
?@adiga您能给出一个如何使用它的示例吗?