У меня есть набор данных json, которые были выведены через URL-адрес. Данные имеют разные уровни, и мне нужно получить доступ к одному уровню, а затем использовать эти данные в цикле jquery для управления некоторыми функциями.Как я могу получить конкретные данные из вывода данных json?
В JSON URL выводит данные, как это:
{
"id": 32,
"title": "sascas",
"synopsis": "<p>cxcxcx</p>\r\n",
"body": "<p>cxccxxc</p>\r\n",
"created_at": "2014-09-25T14:12:06.345Z",
"updated_at": "2014-09-25T14:12:06.345Z",
"author": {
"name": "A test author",
"biography": "/system/authors/avatars/000/000/024/original/photo.JPG?1411472688",
"id": 24
},
"schools": {
"schools": [
{
"id": 5,
"school_name": "Another london school Inner Circle Regent's Park, London",
"website": null,
"book_id": 32,
"created_at": "2014-09-25T14:12:06.413Z",
"updated_at": "2014-09-25T14:12:06.413Z"
},
{
"id": 6,
"school_name": "city of london school 107 Queen Victoria St London",
"website": null,
"book_id": 32,
"created_at": "2014-09-25T14:12:06.417Z",
"updated_at": "2014-09-25T14:12:06.417Z"
}
]
}
}
Я в основном пытаюсь получить доступ к данным школы только в этом цикле в функции JS. В настоящее время функция использует и каждый цикл и добавляет маркеры на карту. Что я хочу знать, может ли моя функция получить данные о школах? Вот моя JS функция для нее:
var initMap = function() {
# The url that is generated in the html for me to grab
var info = $('#map').data('book-title');
$.get(info, {}, function(response) {
setMarkers(map, response);
# some other js stuff for map here inside the $get
}, 'json');
}
Тогда в функции setmarkers у меня есть это:
function setMarkers(map, json) {
jQuery.each(json, function (index, city) {
var school = city['schools'];
console.log(school);
});
}
В выходных данных в консоли я получаю это:
[Object, Object]0: Object book_id: 32 created_at: "2014-09-25T14:12:06.413Z"id: 5school_name: "Another london school Inner Circle Regent's Park, London" updated_at: "2014-09-25T14:12:06.413Z" website: null__proto__: Object__define Getter__: function __defineGetter__() { [native code] }__defineSetter__: function __defineSetter__() { [native code] }__lookupGetter__: function __lookupGetter__() { [native code] }__lookupSetter__: function __lookupSetter__() { [native code] }constructor: function Object() { [native code] }hasOwnProperty: function hasOwnProperty() { [native code] }isPrototypeOf: function isPrototypeOf() { [native code] }propertyIsEnumerable: function propertyIsEnumerable() { [native code] }toLocaleString: function toLocaleString() { [native code] }toString: function toString() { [native code] }valueOf: function valueOf() { [native code] }get __proto__: function __proto__() { [native code] }set __proto__: function __proto__() { [native code] }1: Objectbook_id: 32created_at: "2014-09-25T14:12:06.417Z"id: 6school_name: "city of london school 107 Queen Victoria St London"updated_at: "2014-09-25T14:12:06.417Z"website: null__proto__: Objectlength: 2__proto__: Array[0]
мне нужно доступ к конкретным данным из этого массива, а именно: school_name
. Это вообще возможно?
Конечно. 'city ['schools']' представляет собой массив школ, поэтому просто перебирайте их. См. [Доступ/процесс (вложенные) объекты, массивы или JSON] (http://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json) –
Феликс - мастер здесь. Если он ссылается на статью, прочитайте статью. Изучите это. Понимать это. Истинное счастье будет вашим. – gibberish
Я могу использовать 'console.log (data ['school_name']);' чтобы получить имя одной школы, но это уже в цикле .each, поэтому я сделал 'jQuery.each (json ['schools'], функция (индекс, город) ', которая проходит через массив и получает данные о школах. Мне просто нужно внутри цикла, чтобы получить каждое школьное имя, которое есть все. –