我有一个 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();
}
因此,在生成函数上我想自动生成类并向其分配对象,我尝试这样做:
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()
.... 等等,都是关于 CRUD 的。
有什么解决办法吗?
最佳答案
您可以创建一个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);
}
});
关于javascript - 从 JSON 模式生成 JavaScript 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55157190/