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

如何解析JSON生成以EmpNo为键、attendanceStatus为值的JS对象?

实现方法详解

嘿,这事儿其实挺容易搞定的,咱们直接用JavaScript的数组遍历方法就能实现你想要的结构。核心思路就是遍历原始数据里的table1数组,把每个元素的EmpNo作为新对象的键,再把字符串类型的attendanceStatus转换成布尔值作为对应的值。

方法一:用forEach遍历(直观易懂)

// 你的原始JSON数据
const rawAttendanceData = { "table1": [ { "EmpNo": "3103899", "attendanceStatus": "true" } ] };

// 初始化目标对象
const attendances = {};

// 遍历数组里的每个员工记录
rawAttendanceData.table1.forEach(empRecord => {
  // 把EmpNo作为键,将字符串状态转为布尔值赋值
  attendances[empRecord.EmpNo] = empRecord.attendanceStatus === 'true';
});

console.log(attendances);
// 输出结果: { '3103899': true }

方法二:用reduce方法(更简洁)

如果你喜欢更紧凑的写法,reduce方法可以一步到位:

const rawAttendanceData = { "table1": [ { "EmpNo": "3103899", "attendanceStatus": "true" } ] };

const attendances = rawAttendanceData.table1.reduce((result, empRecord) => {
  result[empRecord.EmpNo] = empRecord.attendanceStatus === 'true';
  return result;
}, {});

console.log(attendances);
// 同样得到: { '3103899': true }

关键注意点

  • 原始数据里的attendanceStatus是字符串类型的"true"/"false",所以必须通过=== 'true'来转换成布尔值,不然最终对象里的值会是字符串而不是你示例里的布尔类型。
  • 如果后续table1里有多个员工记录,这两种方法都能自动处理,把所有员工的编号和状态都映射到目标对象里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:41:19