【发布时间】:2019-08-04 12:34:34
【问题描述】:
我有一个包含信息数据的 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);
})
有什么解决办法吗?
【问题讨论】:
-
使
Employee类从您的响应中接受一个对象作为构造函数参数,然后构建该对象。类似let employee = new Employee(data.employees[0]) -
@IsaacVidrine 我假设
Employes是任意选择的并且可以代表任何字符串?也许OP可以确认。 -
您希望它们仅具有与
employee对象相同的属性还是实际上成为员工对象? -
在标准 OOP 语言中(不是在 javascript 术语中),您是否尝试基于 JSON 数据生成一个新类(可能是因为您不知道将调用哪些类),或者是您只是想即时实例化各种预定义类的对象?两者在 Javascript 中都相对容易——顺便说一下,它没有类(除了语法糖)——但算法会完全不同。
-
@Cat 我想根据 JSON 数据生成新类,例如在我的代码中,我在 json 上有 Employes 和 infos,所以我想在我的 js 代码上自动创建 Employes 和 infos 类
标签: javascript