JSON-LD
JSON-LD — это формат описания контента с помощью объектов словаря связанных данных (Linked Data, LD). Информация, оформленная таким образом, становится машиночитаемой. Чтобы сделать данные JSON-LD доступными для автоматической обработки на странице, их следует помещать в тег script.
Правильность разметки JSON-LD можно проверить в валидаторе.
- Яндекс Почтой;
- при формировании навигационной цепочки для отображения в сниппетах в результатах поиска;
- для структурированного отображения вопросов и ответов на мобильной выдаче.
Любые данные в формате JSON-LD, как и в формате JSON, представляют собой набор пар ключ-значение. В отличие от JSON, формат JSON-LD предусматривает зарезервированные ключи, с помощью которых можно определять контекст описания или связывать объекты различным образом. Например, «@context» определяет словарь объектов, а «@type» — тип описываемой сущности. Полный список зарезервированных ключей приведен в официальной документации JSON-LD.
Абсолютно все ключи и значения в формате JSON-LD чувствительны к регистру.
Основные понятия, унаследованные от JSON:
Объект JSON — набор пар ключ-значение (0 или больше), разделенных запятыми, заключенный в фигурные скобки. В отличие от JSON, в объектах JSON-LD имена ключей в одном и том же объекте не должны повторяться.
Массив — набор значений, разделенных запятыми, заключенный в квадратные скобки. В отличие от JSON, массив не считается упорядоченным, если это не указано особо.
Строка — набор символов Unicode, заключенных в двойные кавычки. При необходимости символы можно указывать с помощью обратных слэшей (\).
Число — используется как и в большинстве языков программирования, но при этом не поддерживаются восьмеричное и шестнадцатеричное представления, а также запрещены нули в начале числа.
true и false — бинарные значения, которые можно использовать для ключей только с двумя вариантами значений (например, прямой перелет или с пересадками, зарегистрирован пассажир или нет, и т. п.).
null — отсутствующее значение. Обычно используется для очистки данных. Если
null
указан как значение ключа@value
,@list
, или@set
внутри JSON-объекта, этот объект полностью игнорируется.
Пример использования разметки в письмах от авиакомпаний
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "FlightReservation",
"reservationId": "RXJ34P"
}
</script>
@context
(зарезервированный) — указывает на то, что в объекте используется словарь Schema.org.@type
(зарезервированный) — указывает на тип FlightReservation, в свойствах которого можно указать данные о бронировании билета на авиарейс.reservationId
— соответствует свойству reservationId типа FlightReservation и содержит номер бронирования билета.
Другие примеры использования формата приведены в разделе о разметке писем с информацией об авиабилетах.