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

如何访问JSON嵌套对象中的name属性并渲染到HTML的li标签中?

解决JSON嵌套对象的name属性获取问题

嘿,这问题很常见!你现在的代码已经能拿到vendors对象的键("1"、"2"、"4")了,要获取对应的name属性其实只需要多一步——用这些键去访问vendors里对应的子对象就行。

方法一:基于现有代码修改

你可以在循环里通过data.vendors[number]拿到每个vendor的完整对象,然后直接提取name属性:

fetch("jsonpage")
  .then((res) => res.json())
  .then((data) => {
    for (const number of Object.keys(data.vendors)) {
      // 用键获取对应的vendor对象,再取name属性
      const vendorName = data.vendors[number].name;
      let newVendor = document.createElement("li");
      newVendor.textContent = vendorName;
      ulList.appendChild(newVendor);
    }
  })
  .catch(console.error);

方法二:更简洁的Object.values写法

如果你不需要用到那些数字键,直接用Object.values()可以直接获取vendors里的所有子对象数组,循环起来更直观:

fetch("jsonpage")
  .then((res) => res.json())
  .then((data) => {
    // 直接拿到所有vendor对象的数组
    for (const vendor of Object.values(data.vendors)) {
      let newVendor = document.createElement("li");
      // 直接访问vendor的name属性
      newVendor.textContent = vendor.name;
      ulList.appendChild(newVendor);
    }
  })
  .catch(console.error);

为什么之前的代码只拿到键?

因为Object.keys()方法的作用就是返回对象所有可枚举属性的键名数组,而你需要的是键对应的值里的name字段,所以要么用键去取值,要么直接用Object.values()跳过键名,直接操作值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 13:02:44