JSON в query-строку
GET или POST — мне без разницы. Переведу.
Вставь JSON, query-строку или целый URL. Направление выберу сам.
Ctrl+Enter — запустить · файл можно бросить сюда
У query-строки нет типов. Только строки с амбициями.
Перевод тела запроса из JSON в query-строку для GET и обратно: query-строку или целый URL — в JSON. Массивы, вложенность и пробелы в том виде, в каком их читает твой бэкенд, числа как записаны, у каждой ошибки — строка и колонка.
Как это работает
- Вставь JSON, query-строку или целый URL или брось файл. Направление выберу сам; не согласен — переключи «В query» или «В JSON».
- Выбери, как писать массивы, вложенность и пробелы. Для «В JSON» реши, останется 2 строкой "2" или станет числом.
- Скопируй или скачай результат. Что query-строка не унесла, перечислено под ним. Получился JSON? Отформатируй его в форматтере.
Единого стандарта для вложенных query-строк нет
RFC 3986 определяет, какие символы может содержать query-строка, а HTML-формы — пары ключ=значение через &. Массивы и вложенные объекты не определяет никто. PHP и Rails читают tags[]=a и user[name]=x, qs в Node пишет индексы вроде items[0][id]=1, сервлеты Java и Go читают повторы ключа, Spring связывает user.name=x, а некоторые API ждут запятых. Проверь, что разбирает твой бэкенд, и выставь «Массивы» и «Вложенность» под него.
Частые вопросы
Куда уходят мои данные?
На наш API по HTTPS: он переводит текст в памяти, не логирует и не сохраняет. Текст уходит, когда ты запускаешь перевод: кнопкой или Ctrl/Cmd+Enter, вставкой в пустой редактор, файлом или примером. С живым режимом он уходит ещё после каждой паузы в наборе; выключи его в строке состояния — и без запуска ничего не уйдёт. Ещё страница шлёт статистику использования по случайному ID устройства, например направление и размеры, но не содержимое.
%20 или +?
В query-строке из HTML-формы оба значат пробел; RFC 3986 знает только %20. «В query» пишет %20, если не выбрать +. «В JSON» читает + как пробел, если не выбрать %20: тогда + остаётся плюсом.
Почему числа стали строками?
В query-строке нет типов: page=2 — просто текст 2. «В JSON» оставляет каждое значение строкой, если не переключить «Типы» с "1" на 1: тогда 123, -1.5 и 2.50 станут числами ровно как записаны, true и false — boolean, а null — null. 007 останется строкой: ведущий ноль обычно означает ID.
Что будет с null и пустыми массивами?
Query-строка не умеет сказать «пустой список» или «null». «В query» пишет null как key= с пустым значением, а пустые массивы и объекты пропускает. Каждая потеря перечислена под результатом с путём JSON Pointer — молча ничего не пропадает.
Другие инструменты
- Форматирование JSON — 2 или 4 пробела или таб, порядок сохранён.
- Валидатор JSON — точная строка и колонка каждой ошибки.
- Сравнение JSON — что изменилось, с путями JSON Pointer.
- Base64: кодирование в браузере, без отправки.
- Минификация JSON — одна строка, каждый байт на счету.
- JSON в YAML — тот же порядок, те же числа, безопасные кавычки.