为了账号安全,请及时绑定邮箱和手机立即绑定

如何在对象内部的json对象中获取数据?

如何在对象内部的json对象中获取数据?

青春有我 2022-07-21 10:04:27
我尝试使用 Musixmatch API 在对象 JSON 中获取一些 track_list 数据这是我的代码"body": {        "track_list": [            {                "track": {                    "track_id": 194169151,                    "track_name": "Blinding Lights",                    "track_name_translation_list": [],                    "track_rating": 100,                    "commontrack_id": 104185748,                    "instrumental": 0,                    "explicit": 0,                    "has_lyrics": 1,                    "has_subtitles": 1,                    "has_richsync": 1,                    "num_favourite": 3237,                    "album_id": 37216011,                    "album_name": "After Hours",                    "artist_id": 13937035,                    "artist_name": "The Weeknd",                    "track_share_url": "https://www.musixmatch.com/lyrics/The-Weeknd-3/Blinding-Lights?utm_source=application&utm_campaign=api&utm_medium=rickyreza%3A1409619798940",                    "track_edit_url": "https://www.musixmatch.com/lyrics/The-Weeknd-3/Blinding-Lights/edit?utm_source=application&utm_campaign=api&utm_medium=rickyreza%3A1409619798940",                    "restricted": 0,                    "updated_time": "2020-04-10T08:31:57Z",                    "primary_genres": {                        "music_genre_list": [                            {                                "music_genre": {                                    "music_genre_id": 7,                                    "music_genre_parent_id": 34,                                    "music_genre_name": "Electronic",                                    "music_genre_name_extended": "Electronic",                                    "music_genre_vanity": "Electronic"                                }                            }                        ]                    }                }            },我只是想检查我是否可以通过这样做来获取轨道内的数据lyric.album_name。并试图获取专辑,但我得到了未定义的专辑名称。这是我的 main.js我怎样才能得到轨道内的所有轨道名称和东西?
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

您忘记了.track歌词对象中的属性。尝试这个

...
<div>${lyric.track.album_name}</div>


查看完整回答
反对 回复 2022-07-21
?
收到一只叮咚

TA贡献1821条经验 获得超5个赞

我检查了 api 调用https://api.musixmatch.com/ws/1.1/chart.tracks.get?chart_name=top&page=1&page_size=5&country=jp&f_has_lyrics=1&apikey=78fa4727ab9c4495d4fc07dae75f775btracklist 返回一个对象数组,其中每个对象只有一个键track

像这样的东西track_list = [{track:{}},{track:{}}]

使用${lyric.track.album_name}它应该工作


查看完整回答
反对 回复 2022-07-21
?
隔江千里

TA贡献1906条经验 获得超10个赞

您忘记了一个属性,但是您可以在函数中使用解构来减少嵌套,这是对代码的一点修改:


const renderAllData = (trackList) => {

  const lirikElement = document.querySelector("#popularLyrics");

  lirikElement.innerHTML = "";


  trackList.forEach(({ track }) => {

    lirikElement.innerHTML += `

      <div>${track.album_name}</div>

    `;

  });

};


renderAllData(data.body.track_list);


查看完整回答
反对 回复 2022-07-21
  • 3 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号