首页 > 解决方案 > 从 JSON 对象创建 JavaScript 类

问题描述

我有一个包含信息数据的 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 文件中自动生成每种对象类型的类。

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

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

有什么解决办法吗?

标签: javascript

解决方案


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);
    })

推荐阅读