У меня есть один файл json, и я повторяю его с помощью карты, но у меня есть ключ глубокого объекта с именем «контент», и я хочу получить от него конкретный ключ, когда возвращаю свой массив json с картой
JSON:
{
"item": [
{
"title": "...",
"link": "...",
"content": {
"_url": "How can I get this :D",
...
}
}
]
}
Мой код JavaScript:
getAllNews = async () => {
const result = await this.getResource('item/')
return result.map(this._transformPosts)
// Here I iterate my json
}
_transformPosts = (item) => {
return {
title: item.title,
link: item.link,
image: item.content._url,
// and here I try get _url
id: item.guide,
}
}
У вас опечатка: item.conten._url
Я знаю, это ничего не меняет
Я хочу вернуть` content._url` в image ?
image: (item.content && item.content._url) ? item.content._url : '' должно хватить.
@briosheje Вау, это работа, спасибо, чувак
@ Мухаммед хорошо, я ответил ниже, не стесняйтесь принять ответ, если это то, что вам нужно.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


прежде всего вам нужно получить ключ элемента и массив. Давайте переберем его и получим ключ, который вы хотите получить.
let jsonData = {
"item": [
{
"title": "title",
"link": "link",
"content": {
"_url": "How can I get this :D"
}
}
]
}
function getKeyFromObject(obj,key){
return obj.item.map(each=>each.content[key])
}
const url = getKeyFromObject(jsonData,"_url");
console.info(url);Пытаться
return {
title: item.title,
link: item.link,
image: item['content']['_url'],
id: item.guide,
}
Чтобы правильно обрабатывать все случаи, не забывайте всегда проверять, действительно ли существует свойство:
return {
title: item.title,
link: item.link,
image: (item.content && item.content._url) ? item.content._url : '', // <-- fix here.
id: item.guide,
}
Возможные проблемы, вероятно, были:
item.conten._url, (должно быть content)item с отсутствующим content. В этом случае item.content._url вызовет исключение. Добавление тернарного оператора, как я сделал выше, гарантирует, что свойство существует, в противном случае оно установит значение по умолчанию ''. Не стесняйтесь изменять его, если это не предполагаемое значение по умолчанию.
Каким должен быть результат?