Сеть/HTTP
Query String ↔ JSON
Разобрать query-строку URL в JSON-объект или собрать JSON обратно в query-строку.
Query-строка URL (часть после ?) — это плоский набор пар ключ-значение, тогда как JSON поддерживает вложенные структуры и типы данных. Инструмент конвертирует в обе стороны, включая повторяющиеся ключи и массивы.
Как пользоваться
- Query → JSON: вставьте query-строку (с ? или без) — получите JSON-объект с раскодированными значениями параметров.
- JSON → Query: вставьте JSON-объект, чтобы собрать из него query-строку с корректным URL-кодированием значений.
- Повторяющиеся ключи (a=1&a=2) автоматически распознаются как массив в JSON.
Типичные сценарии
- Формирование query-параметров из JSON-объекта конфигурации для запроса к API.
- Чтение сложной query-строки с десятками параметров в удобном структурированном виде.
- Отладка, почему параметр не доходит до бэкенда, — проверка кодировки и структуры после конвертации.
Что стоит помнить
Все значения в 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" остаются строками, пока код на сервере или клиенте явно не распознает и не преобразует их в булево значение или число.