如何从键名为数字的多层嵌套JSON对象中提取第一首歌曲的title值
问题原因
JavaScript 中点语法仅支持访问符合标识符命名规则的属性名(不能以数字开头、不能包含空格、特殊符号等),你示例中content下的属性名为数字字符串,不符合标识符规则,因此用top100.content.1.title会触发语法错误。
最优实现方案
分两种场景选择对应写法:
- 明确需要获取排名为1的歌曲(属性键固定为"1"):直接使用方括号属性访问语法,是性能最高、最简洁的写法
const title = top100.content["1"].title
如果需要做异常兼容,避免属性不存在时抛错,可以搭配可选链使用:
const title = top100.content?.["1"]?.title
- 不确定属性键名,仅需要获取
content下排序第一的歌曲:利用Object.values对数字键自动按升序返回的特性,简化写法
const title = Object.values(top100.content)[0].title
内容的提问来源于stack exchange,提问作者Rodo
相关产品推荐
相关产品推荐

