Сеть/HTTP

Query String ↔ JSON

Разобрать query-строку URL в JSON-объект или собрать JSON обратно в query-строку.

Query-строка URL (часть после ?) — это плоский набор пар ключ-значение, тогда как JSON поддерживает вложенные структуры и типы данных. Инструмент конвертирует в обе стороны, включая повторяющиеся ключи и массивы.

Как пользоваться

Типичные сценарии

Что стоит помнить

Все значения в query-строке — это всегда текст: "true", "false" или "42" остаются строками в JSON, пока код явно не преобразует их в соответствующий тип.

Вложенные объекты и массивы не имеют единого стандарта записи в query-строке — разные бэкенд-фреймворки (PHP, Rails, Express) используют немного разный синтаксис (a[b]=1 против a.b=1).

Статья об этом инструменте: Query String против JSON: почему GET-параметры такие ограниченные

Часто задаваемые вопросы

Как этот инструмент обрабатывает повторяющиеся имена параметров вроде ?tag=a&tag=b?

Повторяющиеся ключи обычно собираются в массив (tag: ["a", "b"]), а не перезаписывают друг друга, что соответствует тому, как большинство бэкенд-фреймворков разбирают строки запроса.

Что происходит со спецсимволами при конвертации?

Символы, закодированные в процентном формате (например, %20 для пробела), декодируются обратно в буквальный вид при конвертации в JSON, и кодируются снова при конвертации JSON обратно в строку запроса.

Отправляется ли мой URL или данные куда-либо для выполнения этой конвертации?

Нет. Конвертация происходит полностью в вашем браузере — ничего не отправляется на сервер.

Какова максимальная длина URL, которую можно безопасно использовать?

Примерно 2000 символов — это самый консервативный общий лимит среди популярных браузеров и серверов. Для больших объёмов данных стоит использовать POST-запрос с телом вместо query string.

Как передать значение true/false или число через query string?

Query string всегда хранит только текст — значения "false" или "42" остаются строками, пока код на сервере или клиенте явно не распознает и не преобразует их в булево значение или число.

Статьи: Сеть/HTTP

Разбор URL: из каких частей состоит веб-адрес

Почему в URL есть часть после символа #, которую сервер даже не получает.

User-Agent: почему эта строка такая запутанная

Почему Chrome, Safari и Edge все содержат в User-Agent слова "Mozilla" и "Safari" одновременно.

Basic Authentication: как простейший способ аутентификации работает в HTTP

Почему Basic Auth обязательно требует HTTPS, ведь Base64 — это не шифрование, а лишь кодирование.

HTTP-заголовки: что скрыто в каждом запросе и ответе

Почему заголовок Content-Type определяет, как браузер интерпретирует тело ответа сервера.

Cookies: как небольшой кусок текста хранит состояние сессии

Почему атрибут HttpOnly защищает cookie от кражи через вредоносный JavaScript-код.

CORS: почему браузер блокирует "обычные" запросы к другому домену

Почему ошибка CORS возникает в браузере, а не на стороне сервера, и кто на самом деле блокирует запрос.

Заголовки email: как проследить путь письма от отправителя до вас

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