danielchistyakov
@danielchistyakov
Frontend Engineer

Как вывести переменную с хэштегом?

Имеется вот такой объект:
{"album":{"name":"Redemption","artist":"Hurts","url":"https://www.last.fm/music/Hurts/Redemption","image":[{"#text":"https://lastfm.freetls.fastly.net/i/u/34s/cc41cbff2a786cca628528a0c285674e.png","size":"small"},{"#text":"https://lastfm.freetls.fastly.net/i/u/64s/cc41cbff2a786cca628528a0c285674e.png","size":"medium"},{"#text":"https://lastfm.freetls.fastly.net/i/u/174s/cc41cbff2a786cca628528a0c285674e.png","size":"large"},{"#text":"https://lastfm.freetls.fastly.net/i/u/300x300/cc41cbff2a786cca628528a0c285674e.png","size":"extralarge"},{"#text":"https://lastfm.freetls.fastly.net/i/u/300x300/cc41cbff2a786cca628528a0c285674e.png","size":"mega"},{"#text":"https://lastfm.freetls.fastly.net/i/u/300x300/cc41cbff2a786cca628528a0c285674e.png","size":""}],"listeners":"7125","playcount":"31840","tracks":{"track":[{"name":"Redemption","url":"https://www.last.fm/music/Hurts/_/Redemption","duration":"258","@attr":{"rank":"1"},"streamable":{"#text":"0","fulltrack":"0"},"artist":{"name":"Hurts","mbid":"fcd954c7-f327-446f-87a3-2c4b242c6f38","url":"https://www.last.fm/music/Hurts"}}]},"tags":{"tag":[]}}}

Код:
this.state.dataimage?.album.image[4].#text
Когда пытаюсь вывести "#text", получаю ошибку: "Private name #text is not defined".
Как можно обыграть эту решётку?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 2
{this.state.dataimage?.album.image[4]['#text}
Ответ написан
Комментировать
@abberati
frontend-разработчик
в js символ # зарезервирован. его нельзя явно использовать в имени ключа. в json можно – там он не зарезервирован
зато можно обращаться через динамическое поле

{ "#text": "текст", "ключ с пробелами": 42, "ключ-с-дефисами": 0 }


obj['#text'] // "текст"
obj['ключ с пробелами'] // 42
obj['ключ-с-дефисами'] // 0
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы