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

如何获取JSON外层首个键及数组内首个对象的键?

获取JSON数组内首个对象的键(JavaScript)

给定JSON数据:

{
  "category":[
    {"id":"1","name":"Decorative Objects", "bg_url":"decorative.jpg","url":"/decorative"},    
    {"id":"2","name":"Asian Arts", "bg_url":"asian_art.jpg","url":"/asian_arts"}, 
    {"id":"3","name":"Glassware", "bg_url":"glassware.jpg","url":"/glassware"}, 
    {"id":"4","name":"Antiques", "bg_url":"antique.jpg","url":"/antiques"}
  ]
}

你已经通过 keyIndex = Object.keys(data)[0]; 拿到了外层第一个键,但后续尝试用 keyField = Object.keys(data)[keyIndex][0]; 获取数组内首个对象的键时失败,目标是得到第一个对象的键集合:id、name、bg_url、url。

正确解法

你找到的代码是可行的,完整代码如下:

keyIndex = Object.keys(data)[0];
keyField = Object.keys(data[keyIndex][0]);

为什么之前的代码出错?

Object.keys(data) 返回的是外层键组成的数组(这里是 ["category"]),keyIndex 的值是字符串 "category"。用字符串作为索引去访问 Object.keys(data) 这个数组,会得到 undefined,再取 [0] 自然无法得到想要的结果。

正确的逻辑步骤:

  1. Object.keys(data)[0] 拿到外层键 "category"
  2. data[keyIndex] 访问到对应的数组(即 data["category"])
  3. data[keyIndex][0] 获取数组的第一个对象
  4. Object.keys() 提取该对象的所有键

更简洁的写法

如果不需要动态获取外层键(已知键名为 category),可以直接写:

const firstObjKeys = Object.keys(data.category[0]);

这样代码更直观,可读性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:05:08