Конвертируйте URL параметры в JSON
Коротко об инструменте
Длинную ссылку из адресной строки или из строки лога глазами не разберёшь: тридцать параметров подряд сливаются в кашу. Вставьте хвост вида ?name=John&age=30&city=NYC в поле «Строка запроса» — и получите объект, где каждый ключ на своей строке. Процентная запись раскрывается обратно в читаемый текст, включая кириллицу. Разбор идёт на вашей стороне, поэтому рабочие ссылки из тикетов и логов можно смотреть, не задумываясь, куда они уедут. Смотрите также: собрать строку запроса обратно из объекта, раскодировать %20 и другие escape-последовательности, разложить полученный объект по отступам.
В адресе не существует типов: page=2 — это два текстовых символа, а не число. Разбор честно отдаёт то, что было, поэтому вы видите "2", а не 2, и "false" вместо логического значения. Если объект пойдёт дальше в код, приведите нужные поля к числу или булеву типу сами — угадывание типов ломается на телефонах вида 0912 и на кодах товаров с ведущими нулями.
Обычный объект JSON не хранит два одинаковых ключа, поэтому в результате останется одно значение — то, что встретилось последним. Стандарт допускает повторы, и многие бэкенды собирают из них массив, но в плоском объекте это выразить нечем. Если в ссылке есть повторяющиеся параметры, выпишите их вручную в массив после разбора, иначе часть данных потеряется незаметно.
Удобнее вставлять только хвост после «?», как в подсказке поля. Полный адрес с протоколом и путём разбирается менее предсказуемо: первый сегмент до знака вопроса может попасть в результат отдельным ключом. Проще один раз обрезать строку до вопросительного знака — тогда в объекте окажутся ровно параметры и ничего лишнего.
Процентные последовательности вида %D0%9C раскрываются в обычные буквы, поэтому кириллические названия кампаний и поисковые запросы видно сразу. А вот «+» в старой форме кодирования означал пробел, и при декодировании процентов он таким и остаётся — плюсом. Если исходная ссылка пришла из HTML-формы, замените плюсы на пробелы вручную.
Такой параметр вернётся одной длинной строкой со скобками и кавычками внутри — это верно, ведь для адреса он и был текстом. Скопируйте значение отдельно и прогоните его через JSON Formatter + Validator, чтобы увидеть структуру. Двойное декодирование страница не делает: она раскрывает один слой процентов, а не вложенные форматы.
Сам разбор выполняется скриптом страницы и никуда не передаётся, так что содержимое поля остаётся в вашем браузере. Но ссылка с токеном опасна сама по себе: она уже осела в истории, в логах сервера и, возможно, в чате, откуда вы её взяли. Разбирайте её, если нужно понять инцидент, а затем отзывайте токен на стороне сервиса.
До: ?utm_source=yandex&utm_medium=cpc&utm_campaign=zima%20sale
После: { "utm_source": "yandex", "utm_medium": "cpc", "utm_campaign": "zima sale" } До: ?page=2&per_page=50&status=active&q=
После: { "page": "2", "per_page": "50", "status": "active", "q": "" } Оценка и фидбек помогают понять, что улучшать дальше.