Используйте точный исходник ?q=blue+shoes&tag=sale&tag=new&empty= и профиль form. Начальный вопросительный знак принимается, но не считается парой. Остаются четыре непустых сегмента, а плюс в первом значении превращается в один пробел. Зафиксируйте выбранный профиль и сравнивайте исходник, декодированные строки и канонический запрос вместе. Такой набор позволяет воспроизвести расхождение, но не утверждает, что этот парсер определяет поведение любого сервера, фреймворка или системы подписи.

Проверьте четыре строки по порядку

Декодированные строки: q → blue shoes, tag → sale, tag → new и empty → пустая строка. В каждом сегменте есть равенство. Таблица хранит обе строки tag отдельно и оставляет empty последним, следуя исходнику, а не сортировке ключей. Сохраняйте одинаковые имена отдельными упорядоченными строками, пока принимающее приложение не задаст свою политику. Раннее преобразование в обычный объект может потерять значения, изменить порядок или скрыть отсутствие знака равенства в исходном запросе.

Проверьте счётчики пар и повторов

Результат показывает четыре пары, три уникальных декодированных имени и одно повторное имя. Число повторных имён — не число лишних строк: tag встречается дважды, но даёт одно повторное имя. Определение сохраняется и при трёх появлениях. Успешное декодирование подтверждает только текст, полученный по этим явным правилам. Оно не проверяет целевой URL, не разрешает редирект, не подтверждает подпись, не обнаруживает атаку и не доказывает совпадение лимитов и ошибок другой реализации.

Сравните канонический запрос и JSON

Канонический запрос равен ?q=blue+shoes&tag=sale&tag=new&empty=. Упорядоченный JSON содержит четыре объекта в той же последовательности, включая пустое значение. Копируйте только после проверки профиля form: component сохранил бы плюс и дал другой результат. QueryLens выполняет преобразование локально и не отправляет содержимое запроса в бэкенд продукта. Всё равно проверяйте скопированный результат: в данных могут быть идентификаторы, поисковые фразы или другой чувствительный текст, а валидация и доступ остаются обязанностью целевой системы.