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

如何获取动态JSON结构指定层级下的下一级动态key值

能否通过索引直接获取动态key?

不能。你拿到的schedule['schedule']['1']['schedule']属于对象/字典类型,这类结构的键本身不支持直接通过数字索引读取,必须先把所有键提取为有序数组,再通过索引取值。

具体操作方法

分两种常用开发语言场景实现:

1. Python 场景

目标层级数据为字典类型,调用keys()方法提取所有键转列表后,即可用索引读取动态key:

# 先获取目标层级的字典
target_level = schedule['schedule']['1']['schedule']
# 提取所有key转为列表,取索引0的元素即为当前场景下的动态key 4
dynamic_key = list(target_level.keys())[0]
# 后续可直接用这个key读取对应数据
target_data = target_level[dynamic_key]

如果该层级下有多个动态key,调整索引值即可,比如取第二个key就把[0]改为[1]。

2. JavaScript/Node.js 场景

目标层级为普通对象,用Object.keys()方法提取键数组后用索引读取:

const targetLevel = schedule['schedule']['1']['schedule']
// 提取所有key为数组,取索引0的元素即为动态key
const dynamicKey = Object.keys(targetLevel)[0]
// 读取对应数据
const targetData = targetLevel[dynamicKey]

注意:ES6标准之后普通对象的key会按插入顺序保存,如果你的业务对key的顺序有强要求,建议先确认JSON生成时的键插入顺序符合预期

异常兼容处理

如果担心该层级为空导致索引报错,可以加一层非空判断:

  • Python 版本:
target_level = schedule['schedule']['1']['schedule']
key_list = list(target_level.keys())
if len(key_list) > 0:
    dynamic_key = key_list[0]
else:
    # 自行处理无数据的场景
    pass
  • JavaScript 版本:
const targetLevel = schedule['schedule']['1']['schedule']
const keyList = Object.keys(targetLevel)
if (keyList.length > 0) {
    const dynamicKey = keyList[0]
} else {
    // 自行处理无数据的场景
}

内容的提问来源于stack exchange,提问作者Mr. Dandomi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:45:02