我从一个项目的API中获得了这个类
[
{
"id": 1,
"categoryId": 1,
"userId": 1,
"category": {
"id": 1,
"name": "Objets"
}
}
]
我想在JS中重新创建这个类,以将新的信息推送到具有上述格式的数组中。
在互联网上的一些研究中,我找到了这样的解决方案:
export class classPicture {
constructor(id, categoryId, userId, category) {
this.id = id;
this.categoryId = categoryId;
this.userId = userId;
const category = class category {
constructor(id, name) {
this.id = id;
this.name = name;
}
}
}
}
但我不知道如何使用我的第一个构造函数(below):
我有这样的东西:
export class classPicture {
constructor(id, categoryId, userId, category) {
this.id = id;
this.categoryId = categoryId;
this.userId = userId;
const category = class category {
constructor(id, name) {
this.id = id;
this.name = name;
}
}
}
}
const newPictureAdded = new classPicture(
1,
2,
JSON.parse(sessionStorage.getItem("id"));
category(2,1)
);
谢谢你的帮助
3条答案
按热度按时间yjghlzjz1#
据我所知,你有一个ES6类,并试图用一些JSON数据示例化它。假设JSON数据是以数组的形式出现的,我想您可能希望JSON数组中的每一项都有多个
classPicture
示例。就像作为第一步,我建议像这样分离两个类:
这里我去掉了categoryId属性,因为在category JSON对象中已经有了它。
最后,可以像这样示例化类
需要指出的是,javascript中的几乎所有内容都是对象,您可以简单地
JSON.parse()
您的数据并访问属性,如我不知道你的确切用例,但如果你不需要类附带的额外功能(例如:以特殊方式更改/获取数据的方法-考虑一个返回firstName + lastName的函数),您可以直接访问数据。
8cdiaqws2#
你不能在变量中声明一个类。做你想做的事的正确方法是:
类只是一个结构。要实际使用它,您需要使用'new'关键字创建类的示例。
7eumitmz3#
你不需要一个类来使用你的数据,直接使用它。
JSON.parse
解析它,并提供reviver函数作为第二个参数例如: