Загрузить файл
  1. base64hub
  2. Текстовые инструменты
  3. JSON в Base64

JSON в Base64: кодирование JSON-данных

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

Бесплатно без регистрации и ограничений Локально ничего не загружается Обновлено 27 окт. 2026 г.
Ввод 0 BРезультат 0 BРазмер –

Обработка идёт в браузере. Эта страница не может никуда отправить ваши данные – откуда мы это знаем

Как закодировать JSON в Base64

  1. Вставьте JSON в поле Ввод · текст или нажмите Пример, чтобы загрузить образец объекта.
  2. Скопируйте Base64 из поля Результат · Base64. Цифры размера показывают, насколько он стал длиннее.
  3. Для URL, cookie и значений вроде токенов отметьте URL-safe (- _) и Без дополнения (=).
  4. Скачать сохраняет результат в файл base64.txt.

Пример на этой странице, {"id":42,"name":"base64hub","tags":["json","encode"],"active":true}, занимает 67 байт и кодируется в eyJpZCI6NDIsIm5hbWUiOiJiYXNlNjRodWIiLCJ0YWdzIjpbImpzb24iLCJlbmNvZGUiXSwiYWN0aXZlIjp0cnVlfQ==. Чтобы проверить результат, нажмите Поменять местами или воспользуйтесь Base64 в JSON, который заодно отформатирует JSON.

Пробелы и форматирование меняют Base64

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

Текст JSONBase64
{"a":1}eyJhIjoxfQ==
{"a": 1}eyJhIjogMX0=
{ "a": 1 }eyAiYSI6IDEgfQ==
{"a":1}, отформатированный в три строкиewogICJhIjogMQp9

Это важно, когда Base64 сравнивают, кешируют или подписывают. Получайте JSON одним сериализатором с фиксированными настройками и кодируйте именно эту строку. Ещё одна ловушка связана с порядком ключей: большинство сериализаторов сохраняют порядок вставки, поэтому {"a":1,"b":2} и {"b":2,"a":1} кодируются по-разному.

Python и JavaScript по умолчанию расходятся

Объект {"name": "Zoë", "n": 1}, сериализованный с настройками по умолчанию в каждом языке:

СериализаторТекст JSONBase64
JSON.stringify в JavaScript{"name":"Zoë","n":1}eyJuYW1lIjoiWm/DqyIsIm4iOjF9
json.dumps в Python{"name": "Zoë", "n": 1}eyJuYW1lIjogIlpvXHUwMGViIiwgIm4iOiAxfQ==
Python с separators=(",", ":"), ensure_ascii=False{"name":"Zoë","n":1}eyJuYW1lIjoiWm/DqyIsIm4iOjF9

С включёнными URL-safe и «Без дополнения» вариант JavaScript превращается в eyJuYW1lIjoiWm_DqyIsIm4iOjF9.

Где используется JSON в Base64

  • HTTP-заголовки. Собственные заголовки с контекстом, например для трассировки или метаданных пользователя, часто содержат JSON в Base64, потому что кавычки и не-ASCII символы из «сырого» JSON небезопасны в значениях заголовков. Многие серверы отвергают строки заголовков длиннее примерно 8 КБ, так что держите такие данные компактными.
  • Параметры URL. Значения OAuth state, адреса для редиректа и ссылки для шеринга иногда несут небольшой JSON-объект в Base64URL.
  • Переменные окружения и секреты. Целый JSON-конфиг помещается в одну переменную без экранирования; так хранят, например, ключ сервисного аккаунта в CI-системе.
  • Форматы токенов. В JWT заголовок и полезная нагрузка закодированы как JSON в Base64URL без дополнения. Чтобы собрать подписанный токен, используйте кодировщик JWT; эта страница только кодирует.

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

JSON в Base64 в коде

const obj = { name: "Zoë", n: 1 };
const bytes = new TextEncoder().encode(JSON.stringify(obj));
btoa(String.fromCharCode(...bytes));                     // "eyJuYW1lIjoiWm/DqyIsIm4iOjF9"
Buffer.from(JSON.stringify(obj)).toString("base64url"); // "eyJuYW1lIjoiWm_DqyIsIm4iOjF9" (Node.js)

Без шага с TextEncoder вызов btoa(JSON.stringify(obj)) закодирует ë одним байтом Latin-1 (eyJuYW1lIjoiWm/rIiwibiI6MX0=), который не прочитают декодеры UTF-8, а на всём, что выходит за пределы Latin-1, например на эмодзи, выбросит исключение.

import base64, json

obj = {"name": "Zoë", "n": 1}
text = json.dumps(obj, separators=(",", ":"), ensure_ascii=False)
base64.b64encode(text.encode("utf-8")).decode()   # 'eyJuYW1lIjoiWm/DqyIsIm4iOjF9'

Больше вариантов на страницах про JavaScript, Node.js и Python.

Вопросы и ответы

Как перевести JSON в Base64?

Сериализуйте JSON в строку, закодируйте строку в UTF-8 и закодируйте байты в Base64. Вставьте JSON выше, чтобы получить результат, или используйте в JavaScript btoa с шагом через UTF-8, а в Python base64.b64encode(json.dumps(obj).encode()).

Почему один и тот же объект даёт разный Base64 в Python и JavaScript?

У них разные сериализаторы. json.dumps в Python ставит пробелы после : и , и экранирует не-ASCII как \u00eb, а JSON.stringify не делает ни того, ни другого. Чтобы результаты совпали, используйте separators=(",", ":") и ensure_ascii=False.

Проверяет ли этот инструмент или минифицирует мой JSON?

Нет, он кодирует текст ровно так, как вы его набрали, вместе с пробелами. Если результат должен быть коротким или побайтно совпадать с результатом другой системы, сначала минифицируйте JSON.

Нужен ли URL-safe Base64 для JSON в URL?

Да. Стандартный Base64 может содержать +, / и =, у которых в URL есть особый смысл. Отметьте URL-safe и «Без дополнения»: тот же формат использует JWT.