#javascript #json
Вопрос:
Я пытаюсь прочитать свойство объекта json с помощью переменных. Если я использую переменные, я получаю ошибку, в то время как если я использую свойства, это работает.
JSON:
{
"homebrews": {
"books": {
"title": "text."
},
"cards": {
"template": {
"id": 0,
"name": "myName"
}
}
}
}
Вызываемая функция
createHomebrew('card');
функция:
function createHomebrew(type) {
var homebrew;
$.getJSON('/data-files/templateHomebrew.json', function(json) {
var id = type 's'; // cards
homebrew = json.homebrews[id].template // json.homebrews[id] is undefined
});
Вместо
console.log(json.homebrews.cards.template); // Object { id: 0, name: "myName"}
Комментарии:
1. Что ты пытаешься сделать?
2. Вы звоните
createHomebrew('card')
илиcreateHomebrew(card)
гдеcard
находится переменная со'card'
значением as?3. @Spectric обновил сообщение, я пытаюсь сделать homebrew = card.шаблон файла json.
4. @KelvinSchoofs сообщение обновлено, я называю строку «карточкой».
5. Откуда вы знаете
json.homebrews[id]
, что это не определено? Где вы используетеhomebrew
переменную?
Ответ №1:
Решено, поскольку настройка id = "cards"
сработала, по какой-то причине функция, вызванная с createHomebrew('card')
помощью, не распознала карту как строку, хотя console.log(typeof id)
и вернула строку. Поэтому я добавил id = id.toString();
function createHomebrew(type) {
var homebrew;
$.getJSON('/data-files/templateHomebrew.json', function(json) {
var id = type 's';
id = id.toString();
homebrew = json.homebrews[id].template
});