跳至主要內容
Lizely

查詢字串解析器

將查詢字串轉換為可讀的 JSON 與平鋪 JSON 物件,並轉回編碼後的查詢字串,同時保留重複的鍵值。

隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。

使用方式

  1. 1.選擇查詢至 JSON 或 JSON 至查詢的模式。
  2. 2.貼上查詢元件或平鋪的 JSON 物件,並執行轉換。
  3. 3.檢視重複與空值,然後複製並針對接收的 API 驗證結果。

關於查詢字串解析器

查詢字串解析器可將 URL 的查詢資料轉為 JSON,並將刻意限制的 JSON 形式轉回查詢字串。在查詢至 JSON 模式下,貼上文字(含或不含開頭問號)。該工具會解碼百分比轉義,將加號視為空白,保留空值,並依照出現順序將重複的引數名稱轉為陣列。在 JSON 至查詢模式下,字串、有限的 JSON 數值、布林值、null 與這些標量值的陣列將轉為編碼引數。

此行為遵循瀏覽器 URLSearchParams 的實作與 WHATWG application/x-www-form-urlencoded 規則。空白會序列化為加號,而純文字加號則會以百分比編碼。保留字元如與號與等號在作為值時會被編碼,而非作為分隔符。Unicode 會透過 UTF-8 百分比編碼轉換。輸出的查詢元件不帶開頭問號,因為呼叫者可能需要將其放入 URL、請求體、日誌測試樣本或獨立驗證。

重複的名稱不會被靜默覆蓋。查詢標籤=a&標籤=b 會轉為包含 a 與 b 的 JSON 陣列。單次出現則保留為字串,因此結果保留了原始資料中的差異。此政策雖然有用,但並非所有伺服器的通用慣例:框架可能保留第一個值、最後一個值、總是建立陣列、以逗號分隔,或根據架構規則進行轉換。使用產生資料前,請確認接收應用程式的合約。

JSON 方向拒絕巢狀物件與巢狀陣列。查詢字串對巢狀資料沒有統一的表示方式;方括號表示法、點命名、索引命名與嵌入的 JSON 是競爭性慣例。若試圖猜測,將產生看似正確但對另一解析器意義不同的輸出。空陣列會被忽略,因為其內無值可追加。null 會轉為空值,而 JSON 數值與布林值則轉為其文字形式。

解析不會驗證完整的 URL、主機名稱、路徑、片段、簽章或授權策略。若貼上完整的 URL,其路徑可能會被誤認為是引數名稱的一部分。當你需要 URL 元件驗證時,請先使用獨立的 URL 解析器。排序或重新建立查詢引數可能會破壞簽名 和快取金鑰,因為順序、重複出現、百分比轉義拼寫以及加號與 %20 的選擇可能已被簽章涵蓋。若無法明確得知標準化規則,請保留原始位元組。

200,000 字元上限會限制當前分頁的運作。轉換與剪貼簿寫入會留在瀏覽器中;沒有查詢文字、JSON、標籤、識別碼或 URL 會被上傳。即便如此,查詢字串經常包含會話識別碼、電子郵件地址、搜尋詞彙和追蹤值。請避免在 中放置機密資訊,因為瀏覽器、歷史紀錄、分析資料、代理伺服器、參考來源以及伺服器日誌可能會獨立於本工具保留這些資訊。在分享輸出前,請先刪除敏感資料。

八個外部測試案例針對單一對值、重複名稱、加號轉空白、UTF-8 文字、缺少等號、空值、保留字元與可選的開頭問號進行驗證。額外測試涵蓋標量序列化、陣列、null、巢狀資料拒絕與往返測試。參考實作不執行型別推論:從查詢字串解析的文字 2 會保持為 JSON 字串 "2",因為傳輸格式僅傳遞文字,而非數值型別宣告。

為確保可靠使用,請選擇方向,僅貼上下載的查詢元件或平展 JSON 物件,轉換後檢查重複與空值,再複製結果。在傳送前,請先驗證伺服器或 API 的精確預期值。當協議明確指定標準引數順序或簽章演算法時,請使用該協議的官方編碼器,而非通用轉換器。

方法與來源

採用瀏覽器相容的 URLSearchParams 模型,保留重複名稱為順序陣列,不進行型別推論,僅接受平鋪的 JSON 標量值或標量陣列,且輸入長度限制為 200,000 位元組。八個 WHATWG/MDN 測試案例用以固定解碼行為。

常見問題

為何重複的查詢鍵會轉為陣列?
陣列會保留每一個出現的值,並依照出現順序,而非靜默捨棄較早的值。你的伺服器可能使用不同的慣例,因此請確認其合約。
為何拒絕巢狀的 JSON 物件?
查詢字串沒有統一的巢狀物件語法。方括號、點、索引與嵌入的 JSON 是不相容的慣例,因此工具不會進行猜測。
這是否能安全地編輯已簽名的 URL?
不會。重新排序或重新編碼引數可能會導致簽名與快取鍵失效。除非簽名協議明確定義標準化規則,否則請保留原始序列化位元組。