Вы пытаетесь декодировать объект, а не строку JSON.
То, что вы пытаетесь декодировать, сериализуется до того, как оно передается в JSON-декодер как [object Object]
, следовательно, o
с индексом 1.
Вернитесь к документам getJSON , и вы увидите, что неправильно настраиваете обратный вызов. Возвращаемое значение, которое вы храните в res
, не то, что вы думаете. Вам нужно собрать аргумент для вашей функции обратного вызова - это то место, где будет ваш декодированный ответ.
Это должно вывести вас на правильные строки:
$.getJSON("menu.json")
.done(function(obj) {
console.log(obj.name);
});