Что такое джейсон: Что такое JSON / Хабр

Введение в JSON. Я начал часто подмечать, что… | by Stas Bagretsov

Я начал часто подмечать, что большинство разработчиков умеют работать с JSON на поверхностном уровне или просто слышали про него, но четкого определения и понимания его сути мало кто знает. Хотя это знание является необходимым для каждого разработчика в сфере front-end, да и не только.

Это статья перевод An Introduction to JSON

👉Мой Твиттер — там много из мира фронтенда, да и вообще поговорим🖖. Подписывайтесь, будет интересно: ) ✈️

JSON это сокращение от JavaScript Object Notation — формата передачи данных. Как можно понять из названия, JSON произошел из JavaScript, но он доступен для использования на многих других языках, включая Python, Ruby, PHP и Java, в англоязычным странах его в основном произносят как Jason, то есть как имя ДжЭйсон, в русскоязычных странах ударение преимущественно ставится на “о” — ДжисОн.

Сам по себе JSON использует расширение . json. Когда же он определяется в других файловых форматах, как .html, он появляется в кавычках как JSON строка или может быть объектом, назначенным на переменную. Такой формат легко передавать между сервером и клиентской частью, ну или браузером.

Легкочитаемый и компактный, JSON представляет собой хорошую альтернативу XML и требует куда меньше форматирования контента. Это информативное руководство поможет вам быстрее разобраться с данными, которые вы можете использовать с JSON и основной структурой с синтаксисом этого же формата.

Объект JSON это формат данных — ключ-значение, который обычно рендерится в фигурных скобках. Когда вы работаете с JSON, то вы скорее всего видите JSON объекты в .json файле, но они также могут быть и как JSON объект или строка уже в контексте самой программы.

Вот так выглядит JSON объект:

{
"first_name" : "Sammy",
"last_name" : "Shark",
"location" : "Ocean",
"online" : true,
"followers" : 987
}

Хоть это и короткий пример, и JSON мог бы быть гораздо больше, он показывает то, что этот формат указывается двумя фигурными скобками, которые выглядят так { }, а данные в формате ключ-значние уже находятся между ними. Большинство используемых данных в JSON, заключаются в JSON объекты.

Пары ключ-значние разделены двоеточием, как например тут "key" : "value". Каждая пара значений разделена двоеточием, таким образом середина JSON выглядит так: "key" : "value", "key" : "value", "key" : "value". В нашем примере выше, первая пара ключевых значений это "first_name" : "Sammy".

Ключи в JSON находятся с левой стороны от двоеточия. Их нужно оборачивать в скобки, как с "key" и это может быть любая строка. В каждом объекте, ключи должны быть уникальными. Такие ключевые строки могут содержать пробелы, как в "first_name", но такой подход может усложнить получение доступа к ним во время процесса разработки, так что лучшим вариантом в таких случаях будет использование нижнего подчеркивания, как сделано тут "first_name".

JSON значения находятся с правой стороны от двоеточия. Если быть точным, то им нужно быть одним из шести типов данных: строкой, числом, объектом, массивом, булевым значением или null.

На более широком уровне, значения могут также состоять их сложных типов данных, таких как JSON объект или массив. Об этом мы расскажем чуть позже.

Каждый тип данных, который передается как значения в JSON будет поддерживать свой собственный синтаксис, так что строки будут в кавычках, а цифры нет.

Хоть в .json файлах мы обычно видим формат нескольких строк, JSON также может быть написан в одну сплошную строку.

{ "first_name" : "Sammy", "last_name": "Shark",  "online" : true, }

Такой подход наиболее распространен в файлах других форматов или при работе с JSON строкой.

Работа с JSON в многострочном формате зачастую делает его более читабельным, особенно когда вы пытаетесь справиться с большим набором данных. Так как JSON игнорирует пробелы между своими элементами, вы можете разделить их теми же самыми пробелами, чтобы сделать данные более читабельными:

{ 
"first_name" : "Sammy",
"last_name" : "Shark",
"online" : true
}

Очень важно помнить то, что хоть они и похожи визуально, объекты JSON не имеют тот же формат, как объекты JavaScript, так образом, хоть вы и можете использовать функции внутри JavaScript объектов, вы не можете использовать их как значения в JSON. Самым важным свойством JSON является то, что он может без труда передаваться между языками программирования в формате, который понимают практически все из них. JavaScript объекты могут работать только напрямую через JavaScript.

Пока что мы видели JSON в самых простых случаях, но он может стать иерархичным и сложным, включая в себя вложенные объекты и массивы. Сейчас мы пройдемся по более сложному примеру JSON.

JSON может содержать другие вложенные объекты в JSON, в дополнение к вложенным массивам. Такие объекты и массивы будут передаваться, как значения назначенные ключам и будут представлять собой связку ключ-значение.

Вложенные объекты

В файле users.json, для каждого из четырех пользователей ("sammy", "jesse", "drew", "jamie") есть вложенный JSON объект, передающий значения для каждого из пользователей, со своими собственными вложенными ключами "username" и "location". Первый вложенный JSON объект подсвечен ниже:

{ 
"sammy" : {
"username" : "SammyShark",
"location" : "Indian Ocean",
"online" : true,
"followers" : 987
}
,
"jesse" : {
"username" : "JesseOctopus",
"location" : "Pacific Ocean",
"online" : false,
"followers" : 432
},
"drew" : {
"username" : "DrewSquid",
"location" : "Atlantic Ocean",
"online" : false,
"followers" : 321
},
"jamie" : {
"username" : "JamieMantisShrimp",
"location" : "Pacific Ocean",
"online" : true,
"followers" : 654
}
}

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

Вложенные массивы

Данные также могут быть вложены в формате JSON, используя JavaScript массивы, которые передаются как значения. JavaScript использует квадратные скобки [ ] для формирования массива. Массивы по своей сути — это упорядоченные коллекции и могут включать в себя значения совершенно разных типов данных.

Мы можем использовать массив при работе с большим количеством данных, которые могут быть легко сгруппированны вместе, как например, если есть несколько разных сайтов и профайлов в социальных сетях ассоциированных с одним пользователем.

В этом примере, первый вложенный массив подсвечен:

{ 
"first_name" : "Sammy",
"last_name" : "Shark",
"location" : "Ocean",
"websites" : [
{
"description" : "work",
"URL" : "https://www.digitalocean.com/"
},
{
"desciption" : "tutorials",
"URL" : "https://www.digitalocean.com/community/tutorials"
}
]
,
"social_media" : [
{
"description" : "twitter",
"link" : "https://twitter.com/digitalocean"
},
{
"description" : "facebook",
"link" : "https://www. facebook.com/DigitalOceanCloudHosting"
},
{
"description" : "github",
"link" : "https://github.com/digitalocean"
}
]
}

Ключи "websites" и "social_media" используют массив для вложения информации о сайтах пользователя и профайлов в социальных сетях. Мы знаем, что это массивы — из-за квадратных скобок.

Использование вложенности в нашем JSON формате позволяет нам работать с наиболее сложными и иерархичными данными.

XML расшифровывается как eXtensible Markup Language. Это способ хранения данных, которые могут быть прочитаны как людьми, так и машинами. Формат XML доступен для использования во многих языках программирования.

Во многих случаях, XML очень схож с JSON, но он требует больше писанины, таким образом становясь длиннее и потребляя больше времени для чтения и записи. XML должен быть спарсен с XML парсером, но JSON может быть спарсен стандартным функционалом. Так же, в отличие от JSON, XML не может использовать массивы.

Мы посмотрим на пример XML формата и затем сравним его рендер в JSON.

<users>
<user>
<username>SammyShark</username> <location>Indian Ocean</location>
</user>
<user>
<username>JesseOctopus</username> <location>Pacific Ocean</location>
</user>
<user>
<username>DrewSquir</username> <location>Atlantic Ocean</location>
</user>
<user>
<username>JamieMantisShrimp</username> <location>Pacific Ocean</location>
</user>
</users>

А вот это уже формат JSON:

{"users": [
{"username" : "SammyShark", "location" : "Indian Ocean"},
{"username" : "JesseOctopus", "location" : "Pacific Ocean"},
{"username" : "DrewSquid", "location" : "Atlantic Ocean"},
{"username" : "JamieMantisShrimp", "location" : "Pacific Ocean"}
] }

Тут мы видим, что JSON более компактный и не требует тегов закрытия как в XML. Более того, XML не может использовать массивы, как в примере с JSON.

Если вы знакомы с HTML, то вы подметите то, что XML выглядит похожим на теги. Хоть JSON компактнее и требует меньше писанины, чем XML, а также быстрее в использовании для многих ситуациях, включая AJAX, вам понадобится понять тип проекта над которым вы работаете, перед принятием решения — какую структуру данных использовать.

JSON это нейтральный формат для использования и он имеет множество имплементаций для использования во многих языках програмирования. Вы можете увидеть полный список поддерживаемых языков на “Introducing JSON”

В большинстве случаев вам не придется писать чистый JSON, но вы будете доставать его из источников данных или конвертировать другие дата файлы в JSON. Вы можете сконвертить CSV или табуляционные данные из таких программ как Exel и т.п в JSON, используя open-source инструмент Mr. Data Converter. Вы также можете сконвертировать XML в JSON и наоборот на http://www.utilities-online. info/xmltojson/. Но помните, что используя инструменты автоматизации, вы должны всегда проверять ваши результаты и удалять все лишнее.

Переводя другие типы данных в JSON или создавая свой собственный, вы можете валидировать свой JSON на JSONLint http://jsonlint.com/ и можете протестировать его в контексте веб-разработки на JSFiddle.

JSON это легкий формат, который позволяет вам легко делиться, хранить и работать с данными. Как формат, JSON переживает растущую поддержку API, включая и Twitter API.

Так как вы скорее всего не будете создавать ваши собственные .json файлы, но будете получать их из других источников, то становится очень важным меньше думать о самой JSON структуре и больше о том, как лучше его применять в ваших программах.

JSON


JSON (JavaScript Object Notation) это текстовый формат обмена данными, широко используемый в веб-приложениях. По сравнению с XML он является более лаконичным и занимает меньше места. Кроме этого все браузеры имеют встроенные средства для работы с JSON.


Необходимость работы с этим форматом на уровне платформы обусловлена не только тем, что это современный формат, который прикладные решения 1С:Предприятия сами по себе могут использовать для интеграции со сторонними приложениями. Другая причина заключается ещё и в том, что JSON активно используется в HTTP интерфейсах, для работы с которыми в 1С:Предприятии есть REST интерфейс приложения, автоматически генерируемый платформой, и HTTP-сервисы, которые можно создавать самостоятельно.


Существует несколько основных сценариев использования JSON.

  • Интеграция с внешними системами через их HTTP интерфейсы: Google Calendar, Salesforce.com, REST интерфейс 1С:Предприятия, SharePoint и т. д.;
  • Организация собственного HTTP интерфейса прикладного решения;
  • Обмен файлами JSON с внешними системами. Формирование конфигурационных, настроечных файлов. Использование их в процедурах обмена данными, например, с интернет-магазинами;
  • Использование файлов JSON для обмена данными между разными приложениями 1С:Предприятия.


В платформе реализовано несколько слоёв работы с JSON. Самые простые и гибкие — это низкоуровневые средства потоковой записи и чтения. Более высокоуровневые и не такие универсальные — средства сериализации в JSON примитивных типов и коллекций 1С:Предприятия. И, наконец, третий слой это средства, позволяющие сериализовать/десериализовать прикладные типы 1С:Предприятия: ссылки, объекты, наборы записей и вообще любые типы, для которых поддерживается XDTO сериализация.

Потоковое чтение и запись JSON


Объекты потоковой работы последовательно читают данные в формате JSON из файла или строки, или последовательно записывают их в файл или строку. Таким образом, чтение и запись данных происходят без формирования всего документа в памяти.


Потоковая запись JSON может выглядеть следующим образом. Записывается массив из четырёх элементов. Три из них примитивного типа, а четвёртый элемент — это объект с двумя свойствами:


Результат такой записи:

  {
	"СвойствоТипаМассив": [
		"Значение строка",
		1. 2345E1,
		true,
		{
			"СвойствоТипаСтрока": "Значение строка",
			"СвойствоТипаНеопределено": null
		}
	]
}

Сериализация примитивных типов и коллекций


Вторая группа средств работы с JSON хороша тем, что избавляет от рутинной работы по чтению/записи каждого отдельного значения или свойства. При чтении документы JSON отображаются в фиксированный набор типов платформы: Строка, Число, Булево, Неопределено, Массив, ФиксированныйМассив, Структура, ФиксированнаяСтруктура, Соответствие, Дата. Соответственно, в обратную сторону, композиция объектов этих типов позволяет сформировать в памяти и быстро записать в файл структуру JSON. Таким образом, чтение и запись небольшого объема JSON заранее известной структуры можно производить немногими строчками кода.


Основное назначение этих средств в обмене информацией с внешними системами, чтении конфигурационных файлов в формате JSON.


Пример сериализации (записи) в JSON может выглядеть так:


Результат записи:

{
	"Фамилия": "Иванов",
	"Имя": "Иван",
	"Отчество": "Иванович",
	"Возраст": 40,
	"Женат": true,
	"Телефоны": [
		"8-999-999-99-90",
		"8-999-999-99-91"
	]
}

Сериализация прикладных типов 1С:Предприятия


Прежде всего, и в основном, XDTO сериализацию в JSON рекомендуется использовать при обмене данными между двумя прикладными решениями 1С:Предприятия. Также этот механизм можно использовать и для обмена с внешними системами, готовыми принимать типы данных 1С:Предприятия.


Простейший код, выполняющий сериализацию элемента справочника, может выглядеть так:


В результате будет получен файл JSON следующего содержания:

{
	"#type": "jcfg:CatalogObject. Контрагенты",
	"#value": {
		"IsFolder": false,
		"Ref": "3d710076-8d04-11dc-8ca0-000d8843cd1b",
		"DeletionMark": false,
		"Parent": "9d5c422c-8c4c-11db-a9b0-00055d49b45e",
		"Code": "000000012",
		"Description": "Мосхлеб ОАО",
		"Регион": "9d5c422f-8c4c-11db-a9b0-00055d49b45e",
		"Индекс": "456789",
		"Страна": "Россия",
		"Город": "Москва",
		"Улица": "Петровка",
		"Дом": "12",
		"Телефон": "+7(999)234-78-64",
		"ЭлектроннаяПочта": "[email protected]",
		"Факс": "",
		"ВебСайт": "",
		"ВидЦен": "9d5c4225-8c4c-11db-a9b0-00055d49b45e",
		"ДополнительнаяИнформация": "Поставка хлеба",
		"КонтактноеЛицо": "Громышева П.Р.",
		"Широта": 55.762744,
		"Долгота": 37.618102
	}
}

Функции преобразования и восстановления при сериализации


Не всегда сериализация может быть выполнена полностью автоматически. В жизни встречаются самые разные ситуации. Поэтому существует возможность использовать «самописную» функцию обработки значений при записи в JSON и при чтении из JSON.


При записи в JSON эта функция полезна потому, что позволяет самостоятельно преобразовать в JSON те типы, которые не подлежат автоматическому преобразованию. Или даже совсем отказаться от их сериализации.


При чтении из JSON функция восстановления может использоваться для того, чтобы преобразовать данные JSON в типы 1С, которые не могут являться результатом автоматического преобразования, или для того, чтобы самостоятельно (не автоматически) преобразовать даты JSON в даты 1С:Предприятия.


Во процессе десереализации прикладных типов 1С:Предприятия функция восстановления может потребоваться, например, для того, чтобы при переносе данных из одного прикладного решения в другое, заменить в них ссылки на связанные объекты. Так, чтобы после переноса эти данные ссылались уже на объекты новой базы. Или, например, для того, чтобы удалить из данных информацию, имеющую смысл только в исходной базе.

Автоматически генерируемый REST интерфейс прикладных решений


При обращении к REST интерфейсу прикладного решения можно получать ответ в формате JSON. Есть возможность управлять объёмом передаваемой информации за счёт изменения детальности представления метаданных в выгрузке. Существуют три уровня: минимальный, средний и максимальный. Однако при этом нужно учитывать, что сокращение объёма передаваемой информации приводит к более интенсивным вычислениям на клиенте. И наоборот, когда вся информация включается в выгрузку, объём вычислений на клиенте будет минимальным.

HTTP-сервисы прикладного решения


HTTP-сервисы, реализованные в прикладном решении, также могут возвращать ответ в формате JSON. При этом, при формировании тела ответа, есть возможность указать, следует ли использовать BOM (Byte Order Mark, метка порядка байтов).  

Взаимодействие со сторонними HTTP сервисами


При взаимодействии со сторонними HTTP интерфейсами также существует возможность сформировать тело запроса в JSON, а затем установить его в HTTP запрос.

Технологии интеграции 1С:Предприятия 8.3


Авторы: Е.Ю. Хрусталева

Джейсон | Греческая мифология | Британика

  • Развлечения и поп-культура
  • География и путешествия
  • Здоровье и медицина
  • Образ жизни и социальные вопросы
  • Литература
  • Философия и религия
  • Политика, право и правительство
  • Наука
  • Спорт и отдых
  • Технология
  • Изобразительное искусство
  • Всемирная история
  • Этот день в истории
  • Викторины
  • Подкасты
  • Словарь
  • Биографии
  • Резюме
  • Популярные вопросы
  • Инфографика
  • Демистификация
  • Списки
  • #WTFact
  • Товарищи
  • Галереи изображений
  • Прожектор
  • Форум
  • Один хороший факт
  • Развлечения и поп-культура
  • География и путешествия
  • Здоровье и медицина
  • Образ жизни и социальные вопросы
  • Литература
  • Философия и религия
  • Политика, право и правительство
  • Наука
  • Спорт и отдых
  • Технология
  • Изобразительное искусство
  • Всемирная история
  • Britannica объясняет
    В этих видеороликах Britannica объясняет различные темы и отвечает на часто задаваемые вопросы.
  • Britannica Classics
    Посмотрите эти ретро-видео из архивов Encyclopedia Britannica.
  • Demystified Videos
    В Demystified у Britannica есть все ответы на ваши животрепещущие вопросы.
  • #WTFact Видео
    В #WTFact Britannica делится некоторыми из самых странных фактов, которые мы можем найти.
  • На этот раз в истории
    В этих видеороликах узнайте, что произошло в этом месяце (или любом другом месяце!) в истории.
  • Студенческий портал
    Britannica — это главный ресурс для учащихся по ключевым школьным предметам, таким как история, государственное управление, литература и т. д.
  • Портал COVID-19
    Хотя этот глобальный кризис в области здравоохранения продолжает развиваться, может быть полезно обратиться к прошлым пандемиям, чтобы лучше понять, как реагировать сегодня.
  • 100 женщин
    Britannica празднует столетие Девятнадцатой поправки, выделяя суфражисток и политиков, творящих историю.
  • Спасение Земли
    Британника представляет список дел Земли на 21 век. Узнайте об основных экологических проблемах, стоящих перед нашей планетой, и о том, что с ними можно сделать!
  • SpaceNext50
    Britannica представляет SpaceNext50. От полета на Луну до управления космосом — мы изучаем широкий спектр тем, которые питают наше любопытство к космосу!

Содержание

  • Введение

Краткие факты

  • Связанный контент

Викторины

  • От Афины до Зевса: основы греческой мифологии

  • Джейсон и аргонавты Викторина

  • Изучение греческой и римской мифологии

JSON: что это такое, как это работает и как его использовать

На этой неделе я хочу затронуть тему, которая, по моему мнению, стала важной частью набора инструментов любого разработчика: возможность загружать и манипулировать каналами JSON с других сайтов. через АЯКС. В настоящее время многие сайты обмениваются данными, используя JSON в дополнение к RSS-каналам, и на то есть веская причина: JSON-каналы можно загружать асинхронно гораздо проще, чем XML/RSS. В этой статье будет рассмотрено следующее:

  • Что такое JSON?
  • Почему JSON имеет значение?
  • Как мы используем JSON в проекте?

Мы также будем использовать наши новые навыки работы с JSON в конце этого проекта, чтобы создать быстрое приложение, которое загружает фотографии с Flickr, не требуя обновления страницы.

[demolink]Посмотреть демо | Загрузите исходный код[/demolink]

Что такое JSON?

JSON — это сокращение от JavaScript Object Notation , и представляет собой способ хранения информации в организованном и удобном для доступа виде. В двух словах, это дает нам удобочитаемую коллекцию данных, к которой мы можем получить доступ действительно логическим образом.

Хранение данных JSON

В качестве простого примера, информация обо мне может быть записана в формате JSON следующим образом:

Просмотрите код в Gist.

Это создает объект, к которому мы обращаемся, используя переменную jason . Заключая значение переменной в фигурные скобки, мы указываем, что это значение является объектом. Внутри объекта мы можем объявить любое количество свойств, используя "имя": "значение" сопряжение, разделенное запятыми. Чтобы получить доступ к информации, хранящейся в jason , мы можем просто обратиться к имени нужного нам свойства. Например, чтобы получить информацию обо мне, мы могли бы использовать следующие фрагменты кода:

Посмотреть код на Gist.

Хранение данных JSON в массивах

Немного более сложный пример включает хранение двух людей в одной переменной. Для этого мы заключаем несколько объектов в квадратные скобки, , что означает массив. Например, если бы мне нужно было включить информацию о себе и моем брате в одну переменную, я мог бы использовать следующее:

Посмотреть код на Gist.

Чтобы получить доступ к этой информации, нам нужно получить доступ к индексу массива человека, к которому мы хотим получить доступ. Например, мы могли бы использовать следующий фрагмент для доступа к информации, хранящейся в семействе :

Посмотреть код на Gist.

ПРИМЕЧАНИЕ. Это полезно, если необходимо циклически просмотреть сохраненную информацию, так как она поддается для цикла с автоматически увеличивающимся значением.

Вложение данных JSON

Другим способом хранения нескольких людей в нашей переменной было бы вложенных объектов. Для этого мы должны создать что-то вроде следующего:

Посмотреть код на Gist.

Доступ к информации во вложенных объектах немного проще понять; чтобы получить доступ к информации в объекте, мы будем использовать следующий фрагмент:

Посмотреть код на Gist.

Вложенные JSON и массивы можно комбинировать по мере необходимости для хранения необходимого объема данных.

Почему JSON имеет значение?

С появлением сайтов, использующих AJAX, для сайтов становится все более важным иметь возможность загружать данные быстро и асинхронно , или в фоновом режиме без задержки рендеринга страницы. Переключение содержимого определенного элемента в наших макетах без необходимости обновления страницы добавляет нашим приложениям «вау» фактор, не говоря уже о дополнительном удобстве для наших пользователей. Из-за популярности и простоты социальных сетей многие сайты полагаются на контент, предоставляемый такими сайтами, как Twitter, Flickr и другими. Эти сайты предоставляют RSS-каналы, которые легко импортировать и использовать на стороне сервера, но если мы попытаемся загрузить их с помощью AJAX, мы упремся в стену: мы можем загрузить RSS-канал только в том случае, если мы запрашиваем его из того же домена, на котором он размещен. Попытка загрузить RSS-канал моей учетной записи Flickr с помощью метода jQuery $.ajax() приводит к следующей ошибке JavaScript:

См. код в Gist.

JSON позволяет нам преодолеть междоменную проблему, поскольку мы можем использовать метод под названием JSONP, который использует функцию обратного вызова для отправки данных JSON обратно в наш домен. Именно эта возможность делает JSON невероятно полезным, поскольку он открывает множество дверей, которые раньше было трудно обойти.

Как загрузить JSON в проект?

Одним из самых простых способов загрузки данных JSON в наши веб-приложения является использование метода $.ajax() , доступного в библиотеке jQuery. Простота извлечения данных зависит от сайта, предоставляющего данные, но простой пример может выглядеть так:

Просмотрите код в Gist.

В этом примере будут запрашиваться последние элементы веб-канала в формате JSON и выводиться в браузер. Очевидно, что нам не хотелось бы выводить необработанные данные JSON в браузер, но в этом примере показаны основы загрузки JSON из внешнего источника.

Практический пример: загрузка потоков Flickr с помощью JSON и jQuery

[demolink]Смотреть демонстрацию | Загрузите исходный код[/demolink]

Чтобы показать, как работает JSON на реальном примере, давайте загрузим фотографии с Flickr с помощью jQuery и JSON-версии «Последней» фотопотока Flickr.

Шаг 1. Создайте запрос AJAX

Доступ к фотопотокам Flickr относительно прост. У всех пользователей есть уникальный идентификационный номер, который мы отправим в составе запроса на этот URL.

Посмотреть код на Gist.

Запрос, который нам нужно отправить, запрашивает последние фотографии от рассматриваемого пользователя, а также флаги, запрашивающие ответ в формате JSON. Запрос, который нам нужно отправить, будет выглядеть так:

Посмотреть код на Gist.

В приведенном выше примере XXXXXXXX@NXX необходимо заменить идентификатором пользователя. Мы напишем функцию, поэтому идентификатор пользователя будет передан в качестве аргумента с именем flickrID . Наша функция будет называться loadFlickr() . Давайте создадим функцию, которая будет загружать наш ответ JSON:

Посмотрите код на Gist.

Возвращенные данные JSON будут выглядеть примерно так (обратите внимание, что для краткости я удалил все возвращенные фотографии, кроме одной):

Посмотрите код на Gist.

Шаг 2: обработка данных JSON

Что мы собираемся сделать, так это отобразить миниатюры последних 16 фотографий, которые будут ссылаться на изображение среднего размера. Flickr JSON немного сбивает с толку, и он не дает прямой ссылки на уменьшенную версию наших фотографий, поэтому нам придется использовать некоторые хитрости с нашей стороны, чтобы добраться до него, о чем мы расскажем чуть позже. момент. Каждая запись фотографии хранится в массиве с именем items , к которому мы обращаемся в нашем вызове AJAX, используя feed. items . Чтобы получить данные о каждой записи, мы будем перебирать элементы, пока не найдем либо последнюю доступную фотографию, либо всего 16 фотографий; что наступит раньше. Давайте изменим нашу функцию и настроим цикл:

Посмотреть код на Gist.

Нас интересует элемент «m», хранящийся в элементе «media». Доступ к этому можно получить в нашем цикле, используя feed.items[i].media.m . Мы собираемся запустить регулярное выражение для этого значения, чтобы получить пути к среднему и миниатюрному изображениям, которые мы соберем в связанное миниатюрное изображение. Затем мы поместим только что собранный HTML-код в созданный нами массив миниатюр. После того, как мы закончим цикл, мы будем объедините все изображения в одну строку HTML и замените содержимое нашего элемента отображения загруженными миниатюрами. Давайте добавим эту функциональность в наш скрипт:

Посмотреть код на Gist.

Обратите внимание, что я также добавил функцию с именем addLB() в конец этой функции; это добавляет эффект лайтбокса к нашим миниатюрам, что делается исключительно для эстетики.

This entry was posted in Семантическое ядро