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

AngularJS中遍历JSON对象数组,如何正确获取键对应的值?

解决JSON数组单个键值对的取值问题

我完全懂你的困扰!你手头的这个JSON数组,每个元素都是只包含单个键值对的对象,现在你能拿到路径形式的键,但一直没法正确获取对应的产品名称值,之前用response.data[key][0]的写法确实不对,我来给你捋清楚问题出在哪,再给你几个好用的解决办法。

问题根源

你拿到的response.data是一个数组,数组里的每一项都是一个独立的对象(比如第一个是{ "/folder1/folder2/folder3/product-1": "Product Apple" }),不是数组!所以你用[0]去访问这个对象肯定行不通——对象是用键名来取值的,不是数字索引。

解决方案

这里有两种简单直接的方式,按需选就行:

方法1:用Object.entries()解构键值对

这个方法能直接把单个键值对的对象转换成数组,再解构出键和值:

// 假设response.data就是你的JSON数组
response.data.forEach(item => {
  // Object.entries(item)会把对象转成[[键, 值]]的格式,取[0]拿到唯一的键值对数组
  const [productPath, productName] = Object.entries(item)[0];
  
  // 现在你就可以随意使用这两个值了
  console.log('产品路径:', productPath);
  console.log('产品名称:', productName);
});

方法2:先拿键再取值

如果你习惯先获取键,再通过键去访问值,也可以这么写:

for (const item of response.data) {
  // 拿到当前对象的唯一键
  const productPath = Object.keys(item)[0];
  // 通过键获取对应的值
  const productName = item[productPath];
  
  console.log(productPath, productName);
}

单独获取第一个元素的值示例

如果你只想拿到第一个元素的Product Apple,可以这么写:

const firstProductObj = response.data[0];
const firstProductKey = Object.keys(firstProductObj)[0];
const firstProductValue = firstProductObj[firstProductKey];
console.log(firstProductValue); // 输出 "Product Apple"

这样应该就能解决你的问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:42:32