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

如何访问API返回JSON中的eldSettings数组与tags对象属性

访问嵌套JSON中的数组与属性

针对你提供的API返回数据,要访问eldSettings下的rulesets数组,以及tags数组里的对象属性,你可以通过链式访问结合数组循环来实现,以下是具体示例:

1. 访问eldSettings.rulesets数组

rulesets是嵌套在eldSettings对象里的数组,先通过driveArry[x].eldSettings.rulesets拿到数组,再循环遍历内部对象:

const driveArry = dataobj.data;
let tag = "";
for (let x in driveArry) {
  // 保留原有的顶级name访问逻辑
  tag += driveArry[x].name + "<br>";
  
  // 遍历rulesets数组
  const rulesets = driveArry[x].eldSettings.rulesets;
  for (let rule of rulesets) {
    tag += `规则周期:${rule.cycle}<br>`;
    tag += `班次类型:${rule.shift}<br>`;
    tag += `重启规则:${rule.restart}<br>`;
    tag += `休息要求:${rule.break}<br><br>`;
  }
}
console.log(tag);

2. 访问tags数组中的对象属性

tags是直接挂在顶级对象下的数组,循环遍历每个标签对象即可取出id、name等属性:

const driveArry = dataobj.data;
let tag = "";
for (let x in driveArry) {
  tag += driveArry[x].name + "<br>";
  
  // 遍历tags数组
  const tags = driveArry[x].tags;
  tag += "标签列表:<br>";
  for (let t of tags) {
    tag += `标签ID:${t.id},标签名称:${t.name},父标签ID:${t.parentTagId}<br>`;
  }
  tag += "<br>";
}
console.log(tag);

合并完整示例

如果要同时访问两部分数据,可将逻辑整合到一个循环中:

const driveArry = dataobj.data;
let tag = "";
for (let x in driveArry) {
  const driver = driveArry[x];
  // 顶级属性
  tag += `司机姓名:${driver.name},ID:${driver.id},电话:${driver.phone}<br>`;
  
  // Eld规则部分
  const rulesets = driver.eldSettings.rulesets;
  tag += "Eld规则:<br>";
  for (let rule of rulesets) {
    tag += ` - 周期:${rule.cycle},班次:${rule.shift}<br>`;
  }
  
  // 所属标签部分
  const tags = driver.tags;
  tag += "所属标签:<br>";
  for (let t of tags) {
    tag += ` - ${t.name}(ID:${t.id})<br>`;
  }
  tag += "<br><br>";
}
console.log(tag);

注意事项

  • 建议添加存在性判断(比如driver.eldSettings?.rulesets),避免因数据缺失导致报错;
  • 遍历数组优先使用for...of循环,比for...in更适配数组场景,不会遍历到数组原型上的额外属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:40:31