2017-01-15 2 views
0

Я все еще новичок в получении данных JSON и манипулирую им, будьте спокойны со мной. Кажется, я делаю успешный вызов данных, но перечисление полей возвращается с [объектом] вместо фактических полей. Это, наверное, что-то глупое, но я пробовал все варианты, о которых я могу думать, чтобы указать поля, и это просто вызывает ошибки в консоли.Я просто не могу заставить данные JSON отображаться

Вы можете увидеть данные в формате JSON здесь: https://api.myjson.com/bins/10h45j.json

Любая идея, что я делаю неправильно здесь?

$(document).ready(function(){ 
 
    $("button").click(function(){ 
 
     $.getJSON("https://api.myjson.com/bins/10h45j.json", function(data){ 
 
      $.each(data.Luthiers, function(i, field){ 
 
       $("#cheetos").append(field + "<br />"); 
 
      }); 
 
     }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<button>Get JSON data</button> 
 

 
<div id="cheetos"></div>

+0

Вот альтернативный JSON с массивом: https://api.myjson.com/bins/hpylj.json – Joel

ответ

1

Вы также можете попробовать это:

$(document).ready(function(){ 
    $("button").click(function(){ 
     $.getJSON("https://api.myjson.com/bins/10h45j.json", function(data){ 
      $.each(data.Luthiers, function(field){ 
       $("#cheetos").append(field + "<br />"); 
      }); 
     }); 
    }); 
}); 
+0

Спасибо - это то, что я искал! Теперь я пытаюсь понять, как вызывать отдельные поля внутри каждого элемента. Я чувствую, что мой файл JSON должен быть отформатирован с помощью массивов или чего-то подобного. Все элементы имеют уникальные имена (и включают пробелы), поэтому я не могу вернуться назад и указать Luthiers. (Item) .URL Я неправильно отформатирован для создания надлежащей базы данных, в которой каждый элемент может быть отфильтрован как страна, город и т. д.? – Joel

+0

@delano: Вы могли бы добавить некоторое объяснение тому, какие изменения вы сделали, чтобы заставить его работать. –

+0

Я думаю, что теперь у меня это работает: $ (document) .ready (function() { $ .getJSON ("https://api.myjson.com/bins/1ew0pj.json", функция (данные) { $ .each (. данные, функция (я, поле) { $ ("# показать-данные") добавить (field.NAME + "
"); }); });} ); – Joel

2

Добавить JSON.stringify для того, чтобы, ну, "stringify" объект JSON. Попробуйте сниппет ниже, вы увидите, что ваши данные печатаются так, как вы ожидаете :)

$(document).ready(function(){ 
 
    $("button").click(function(){ 
 
     $.getJSON("https://api.myjson.com/bins/10h45j.json", function(data){ 
 
      $.each(data.Luthiers, function(i, field){ 
 
       $("#cheetos").append(JSON.stringify(field) + "<br />"); // add JSON.stringify() 
 
      }); 
 
     }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<button>Get JSON data</button> 
 

 
<div id="cheetos"></div>

+0

Спасибо! Это сработало, но данные вернули все поля в блоке, я работаю над созданием списков, которые сортируются, поэтому мне нужно выяснить, как перечислять элементы, а затем их соответствующие поля [URL, имя и т. Д.]. – Joel

1

Вы можете попробовать некоторые вещи например, , и здесь у вас есть возможность получить отдельные предметы.

$(document).ready(function(){ 
 
    $("button").click(function(){ 
 
     $.getJSON("https://api.myjson.com/bins/10h45j.json", function(data){ 
 
      $.each(data.Luthiers, function(i, field){ 
 
       $.each(field, function(j, subFields){ 
 
       \t $("#cheetos").append(subFields + "<br />"); 
 
      }); 
 
      }); 
 
     }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<button>Get JSON data</button> 
 

 
<div id="cheetos"></div>

Смежные вопросы