如何解决角8:如何从JSON REST API创建枚举
如何从json rest api创建枚举?
我有这项服务。
getDataFromJson(): Observable<any> {
return this.httpClient.get<any>(`../../../assets/gender.json`)
.pipe(map(data => {
return data;
}));
}
但返回为
[
{
"name": "Female",},{
"name": "Male",}
]
使用此代码
getGenders: any = {}
getGender() {
this.options.getDataFromJson().subscribe(data => {
this.getGenders = data;
})
}
代替这种格式
{
Male = 'Male',Female = 'Female',}
我希望它像枚举类型一样返回并将其放置在我的sex.ts中。
export enum Gender {
Male = 'Male',}
谢谢您的帮助。
解决方法
我不认为enum是正确的词。请考虑一个常数。
假设您有一个gender.json文件,该文件在您的项目中包括以下内容。
[
{
"name": "Female"
},{
"name": "Male"
}
]
现在,您要在gender.ts中创建另一个包含预期格式的变量。
export const genders = {
Male: 'Male',Female: 'Female',};
要动态建立性别常数,您需要做两件事。
第1步:转到您的editorOptions并包括这两行:
"resolveJsonModule": true,"allowSyntheticImports": true
第二: 返回gender.ts并导入json文件。然后将json的内容转换为预期的格式。
import genderJson from './gender.json';
export const genders = genderJson
.map(gender => gender.name).reduce((acc,gender) => {
acc[gender] = gender;
return acc;
},{});
查看有效的堆叠闪电战:https://stackblitz.com/edit/angular-ivy-uocg2j?file=src%2Fapp%2Fgender.ts
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。