You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular TypeScript中如何将JSON数组转为自定义Roles类数组

在Angular TypeScript中转换JSON数组为自定义Roles类数组的实现方法

嘿,这事儿其实挺简单的,我给你两种实用的实现方式,你可以根据场景灵活选:

1. 先完善你的Roles类(推荐带构造函数)

首先把Roles类的定义捋顺,加个构造函数会让初始化更顺手,另外注意TypeScript里布尔类型建议用小写的boolean(大写Boolean是包装对象,一般不用在类型定义里):

class Roles {
  ID: number;
  Role: string;
  Checked: boolean;

  // 构造函数,默认把Checked设为false,也可以自定义默认值
  constructor(id: number, role: string, checked: boolean = false) {
    this.ID = id;
    this.Role = role;
    this.Checked = checked;
  }
}

2. 用Array.map()完成转换

方法一:通过构造函数创建实例(类型最安全)

这种方式适合以后Roles类可能添加业务方法或逻辑的场景,直接调用构造函数生成类实例:

// 你的原始JSON数组
const rawRolesData = [{"id":1,"role":"Admin"},{"id":2,"role":"Manager"},{"id":3,"role":"User"}];

// 转换为Roles数组
const rolesArray: Roles[] = rawRolesData.map(item => 
  new Roles(item.id, item.role)
);

如果需要根据条件设置Checked的值(比如默认让Admin选中),可以这样调整:

const rolesArray: Roles[] = rawRolesData.map(item => 
  new Roles(item.id, item.role, item.role === 'Admin')
);

方法二:对象字面量+类型断言(快速简洁)

如果你的Roles类只是纯数据结构,没有额外方法,也可以直接用对象字面量创建,再通过类型断言告诉TypeScript这是Roles类型:

const rolesArray: Roles[] = rawRolesData.map(item => ({
  ID: item.id,
  Role: item.role,
  Checked: false // 这里设置默认选中状态
}) as Roles);

这样就能轻松把JSON数组转换成你需要的Roles类数组啦~

内容的提问来源于stack exchange,提问作者Hunzla Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:44:01