如何获取JSON数组中JSON对象的名称(如channelA、channelB)
获取频道名称值的解决方案
嘿,我来帮你搞定这个问题!你已经在用for循环遍历epg数组了,接下来只需要在循环里拿到每个数组元素的键名(也就是channelA、channelB这类频道名称)就行,毕竟每个数组元素都是只包含一个频道对象的结构。
具体实现代码
var epg = [ { "channelA": { "programmes": [ { "start_utc": 1522208700, "stop_utc": 1522209600 }, { "start_utc": 1522209600, "stop_utc": 1522210800 } ] } }, { "channelB": { "programmes": [ { "start_utc": 1522256700, "stop_utc": 1522260800 }, { "start_utc": 152229000, "stop_utc": 1522318900 } ] } } ]; // 用来存所有频道名称的数组 var channelNames = []; for (var k = 0; k < epg.length; k++) { // 拿到当前元素的唯一键名(就是频道名称) var currentChannel = Object.keys(epg[k])[0]; channelNames.push(currentChannel); // 要是你还需要同时处理频道的节目数据,也可以这样获取 var channelProgrammes = epg[k][currentChannel].programmes; console.log(`频道 ${currentChannel} 的节目列表:`, channelProgrammes); } // 最后输出所有频道名称 console.log("收集到的频道名称:", channelNames); // 结果会是 ["channelA", "channelB"]
关键点解释
Object.keys(epg[k])会返回当前数组元素的所有属性名数组,因为每个元素只有一个频道对象,所以取索引[0]就能精准拿到频道名称。- 如果你只需要频道名称,把
currentChannel存入数组就搞定;如果还要操作节目数据,通过epg[k][currentChannel]就能拿到对应的频道对象,再访问programmes属性就行。
内容的提问来源于stack exchange,提问作者burakk
相关产品推荐
相关产品推荐

