JSON — это формат для хранения и обмена данными между программами. Без понимания JSON сложно работать с API и строить нормальные автоматизации.

Ключевые понятия

  • JSON (JavaScript Object Notation): Текстовый формат для хранения и обмена данными. Представьте его как универсальный «английский язык» для программ.
  • Пара «ключ-значение» (Key-Value Pair): Основа JSON. Это как ярлык и то, что на нём написано. Например, "name": "John".
  • Ключ (Key): Название поля данных. Всегда пишется в двойных кавычках (например, "возраст").
  • Значение (Value): Сами данные. Могут быть текстом, числом, true/false и т.д.
  • Массив (Array): Список значений под одним ключом. Например, список покупок.
  • Объект (Object): Набор пар «ключ-значение», заключённый в фигурные скобки {}. Весь JSON-файл — это, по сути, один большой объект.


Метафора: JSON это шкаф с ящиками

На картинке видно, как это работает. Слева — названия ящиков (ключи), справа — то, что в них лежит (значения). Обратите внимание: все ключи пишутся в кавычках, и между ключом и значением стоит двоеточие. Это правило JSON.

Главное

Когда Gmail отправляет уведомление о письме в Telegram, или Tally отправляет ответы в Google Sheets, программы должны понять друг друга. Для этого они используют JSON — единый формат, который одинаково читается везде.

Еще один способ понять JSON — это представить его как таблицу, записанную в текстовом формате.

  • Список объектов [ { }, { } ] — это вся таблица.
  • Каждый объект { } — это отдельная строка в таблице.
  • Ключи (например, "name") — это заголовки столбцов.

Когда n8n получает 100 строк из Google Sheets, он представляет их именно как список из 100 объектов. Давайте посмотрим на пример одного объекта (одной строки):

{
  "name": "John",
  "age": 30,
  "city": "New York",
  "email": "john@example.com"
}
  • "name" — это ключ, а "John" — значение (текст, или string).
  • "age" — ключ, а 30 — значение (число, или number).
  • "city" — ключ, а "New York" — значение (текст).
  • "email" — ключ, а "john@example.com" — значение (текст).

Вот тут важно понимать: ключи — это всегда текст в кавычках. А значения могут быть разными: текст в кавычках, числа без кавычек, а также true или false без кавычек.

Неправильный и правильный JSON

Посмотрите на разницу. Это неправильно:

"name" "John"
age 30
"city" 'New York
"email" john@example.com

Почему неправильно:

  • age не в кавычках (ключ всегда в кавычках)
  • 'New York в одинарных кавычках (нужны двойные)
  • john@example.com не в кавычках (текстовые значения должны быть в кавычках)
  • нет двоеточий между ключом и значением
  • нет запятых между парами
  • всё не в фигурных скобках

Это правильно:

{
  "name": "John",
  "age": 30,
  "city": "New York",
  "email": "john@example.com"
}

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

Примеры и аналогии

Массивы (Array) — как список покупок

Если у одного ключа несколько значений, используется массив. Он заключается в квадратные скобки [].

{
  "покупки": ["молоко", "хлеб", "яблоки"]
}

Здесь ключ — "покупки", а значение — целый список.

Вложенные объекты — как матрёшка

Иногда данные имеют иерархию. Это как папки на компьютере. Для этого объекты вкладываются друг в друга.

{
  "пользователь": {
    "имя": "Анна",
    "контакты": {
      "email": "anna@example.com",
      "телефон": "+79001234567"
    }
  }
}

Здесь у объекта "пользователь" есть свой объект "контакты".

Частые заблуждения

Мне не нужно понимать JSON для автоматизаций
Это работает до первой нестандартной задачи. Когда вам понадобится подключить сервис, для которого нет готового блока, вам придётся работать с API напрямую через HTTP-запрос. А тело запроса и ответ от сервера — это всегда JSON. Без понимания его структуры вы не сможете ни отправить, ни обработать данные.

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

Что делать дальше

  1. Посмотрите на настоящий JSON: Вставьте в браузер эту ссылку: https://pokeapi.co/api/v2/pokemon/pikachu. То, что вы увидите — это реальный ответ от API в формате JSON. JSON может выглядеть как каша в браузере. Воспользуйтесь инструментом — загуглите «JSON Beautifier» (это онлайн-сервис, например jsonbeautifier.org). Скопируйте туда ответ от API, и он красиво отформатирует JSON с отступами. Теперь найдите знакомые структуры: ключи, значения, массивы, вложенные объекты.
  2. Обращайте внимание на данные в n8n: Когда вы получаете данные из одного модуля, посмотрите на их структуру. Это визуальное представление JSON. Понимание этой структуры поможет вам правильно «мэппить» (сопоставлять) поля.

Зачем нужно уметь выбирать нужные данные из JSON

Когда вы работаете с API, ответ часто содержит намного больше данных, чем вам нужно. Например, GIPHY API при запросе гифки возвращает:

[
    {
        "type": "gif",
        "id": "2y0kG45gO6brq",
        "url": "https://giphy.com/gifs/protection-2y0kG45gO6brq",
        "slug": "protection-2y0kG45gO6brq",
        "bitly_gif_url": "http://gph.is/1LiO1Tr",
        "bitly_url": "http://gph.is/1LiO1Tr",
        "embed_url": "https://giphy.com/embed/2y0kG45gO6brq",
        "username": "",
        "source": "http://www.reddit.com/r/gifs/comments/3olct6/under_my_protection/",
        "title": "Cat GIF",
        "rating": "g",
        "content_url": "",
        "source_tld": "www.reddit.com",
        "source_post_url": "http://www.reddit.com/r/gifs/comments/3olct6/under_my_protection/",
        "is_sticker": false,
        "import_datetime": "2015-10-13T10:52:26.000Z",
        "trending_datetime": "2017-04-15T23:00:02.000Z",
        "images": {
            "original": {
                "height": "195",
                "width": "346",
                "size": "2047008",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy.gif",
                "mp4_size": "819939",
                "mp4": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy.mp4",
                "webp_size": "1068248",
                "webp": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy.webp",
                "frames": "49",
                "hash": "4942f27dde004f294e8685adf69b6bd4"
            },
            "downsized": {
                "height": "195",
                "width": "346",
                "size": "1535396",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy-downsized.gif"
            },
            "downsized_large": {
                "height": "195",
                "width": "346",
                "size": "2047008",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy.gif"
            },
            "downsized_medium": {
                "height": "195",
                "width": "346",
                "size": "2047008",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy.gif"
            },
            "downsized_small": {
                "height": "154",
                "width": "274",
                "mp4_size": "189952",
                "mp4": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy-downsized-small.mp4"
            },
            "downsized_still": {
                "height": "195",
                "width": "346",
                "size": "32052",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy-downsized_s.gif"
            },
            "fixed_height": {
                "height": "200",
                "width": "356",
                "size": "1693359",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200.gif",
                "mp4_size": "781279",
                "mp4": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200.mp4",
                "webp_size": "971002",
                "webp": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200.webp"
            },
            "fixed_height_downsampled": {
                "height": "200",
                "width": "356",
                "size": "195774",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200_d.gif",
                "webp_size": "134544",
                "webp": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200_d.webp"
            },
            "fixed_height_small": {
                "height": "100",
                "width": "178",
                "size": "519423",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/100.gif",
                "mp4_size": "164947",
                "mp4": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/100.mp4",
                "webp_size": "230368",
                "webp": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/100.webp"
            },
            "fixed_height_small_still": {
                "height": "100",
                "width": "178",
                "size": "10350",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/100_s.gif"
            },
            "fixed_height_still": {
                "height": "200",
                "width": "356",
                "size": "30482",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200_s.gif"
            },
            "fixed_width": {
                "height": "112",
                "width": "200",
                "size": "617430",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200w.gif",
                "mp4_size": "183782",
                "mp4": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200w.mp4",
                "webp_size": "287286",
                "webp": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200w.webp"
            },
            "fixed_width_downsampled": {
                "height": "112",
                "width": "200",
                "size": "71160",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200w_d.gif",
                "webp_size": "47438",
                "webp": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200w_d.webp"
            },
            "fixed_width_small": {
                "height": "58",
                "width": "100",
                "size": "178522",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/100w.gif",
                "mp4_size": "50950",
                "mp4": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/100w.mp4",
                "webp_size": "92280",
                "webp": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/100w.webp"
            },
            "fixed_width_small_still": {
                "height": "58",
                "width": "100",
                "size": "4310",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/100w_s.gif"
            },
            "fixed_width_still": {
                "height": "112",
                "width": "200",
                "size": "12115",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/200w_s.gif"
            },
            "looping": {
                "mp4_size": "4482276",
                "mp4": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy-loop.mp4"
            },
            "original_still": {
                "height": "195",
                "width": "346",
                "size": "29076",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy_s.gif"
            },
            "original_mp4": {
                "height": "194",
                "width": "346",
                "mp4_size": "819939",
                "mp4": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy.mp4"
            },
            "preview": {
                "height": "86",
                "width": "150",
                "mp4_size": "41048",
                "mp4": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy-preview.mp4"
            },
            "preview_gif": {
                "height": "58",
                "width": "100",
                "size": "35094",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy-preview.gif"
            },
            "preview_webp": {
                "height": "58",
                "width": "100",
                "size": "28554",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/giphy-preview.webp"
            },
            "480w_still": {
                "height": "271",
                "width": "480",
                "size": "2047008",
                "url": "https://media4.giphy.com/media/v1.Y2lkPWI5ZmYzYTQ1NDB0NHp4am1od2d0YXZoeGRtbXdiejkzb2EyeGJnbmloaW80ajFnYyZlcD12MV9naWZzX3JhbmRvbSZjdD1n/2y0kG45gO6brq/480w_s.jpg"
            }
        },
        "analytics_response_payload": "e=ZXZlbnRfdHlwZT1HSUZfU0VBUkNIJmNpZD1iOWZmM2E0NTQwdDR6eGptaHdndGF2aHhkbW13Yno5M29hMnhiZ25paGlvNGoxZ2MmZ2lmX2lkPTJ5MGtHNDVnTzZicnEmY3Q9Zw",
        "analytics": {
            "onload": {
                "url": "https://giphy-analytics.giphy.com/v2/pingback_simple?analytics_response_payload=e%3DZXZlbnRfdHlwZT1HSUZfU0VBUkNIJmNpZD1iOWZmM2E0NTQwdDR6eGptaHdndGF2aHhkbW13Yno5M29hMnhiZ25paGlvNGoxZ2MmZ2lmX2lkPTJ5MGtHNDVnTzZicnEmY3Q9Zw&action_type=SEEN"
            },
            "onclick": {
                "url": "https://giphy-analytics.giphy.com/v2/pingback_simple?analytics_response_payload=e%3DZXZlbnRfdHlwZT1HSUZfU0VBUkNIJmNpZD1iOWZmM2E0NTQwdDR6eGptaHdndGF2aHhkbW13Yno5M29hMnhiZ25paGlvNGoxZ2MmZ2lmX2lkPTJ5MGtHNDVnTzZicnEmY3Q9Zw&action_type=CLICK"
            },
            "onsent": {
                "url": "https://giphy-analytics.giphy.com/v2/pingback_simple?analytics_response_payload=e%3DZXZlbnRfdHlwZT1HSUZfU0VBUkNIJmNpZD1iOWZmM2E0NTQwdDR6eGptaHdndGF2aHhkbW13Yno5M29hMnhiZ25paGlvNGoxZ2MmZ2lmX2lkPTJ5MGtHNDVnTzZicnEmY3Q9Zw&action_type=SENT"
            }
        },
        "alt_text": "",
        "is_low_contrast": false
    }
]

Видите, сколько здесь полей? url, slug, bitly_gif_url, bitly_url, embed_url, images (с десятками вложенных объектов), analytics, alt_text и ещё многое другое.

А вам, скорее всего, нужно всего одно: ссылка на саму гифку (например, images.original.url или просто url).

Вот в этом и состоит искусство работы с JSON в автоматизации: понимать структуру данных и знать, как взять ровно то, что вам нужно, а остальное отбросить. В n8n это называется «мэппинг» (mapping) данных.

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

Обсудить статью с ботом

@ask_aimindset_bot — бот поддержки

Дальше

105 API keys