Skip to content
JSON 轉義 / 還原
Tools

JSON 轉義 / 還原

將原始文字轉義為 JSON 安全字串,並可還原回來。

Options
0 input chars 0 output chars 0 output bytes

Runs entirely in your browser. Nothing is uploaded.

線上 JSON 跳脫與反跳脫 — 免費、私密、即時

這款 JSON 跳脫工具可將任意文字轉換為 JSON 安全字串,並將已跳脫的字串還原為純文字——雙向轉換,一站完成,即時執行,完全在瀏覽器中運作。貼上內容,選擇跳脫反跳脫,複製結果即可。無需安裝,無需註冊。由於每次轉換均在本地執行,您的資料永遠不會離開您的裝置——適用於 API 酬載、存取權杖、密碼以及任何不希望上傳到伺服器的機密文字。

這是為 API 酬載跳脫 JSON 字串、在設定檔中插入多行程式碼片段或從日誌中找到的已跳脫值還原原始文字的最快方式。轉換使用瀏覽器原生 JSON 引擎——而非手寫的正規表達式——因此輸出結果與 JavaScript 中 JSON.stringify 產生的內容完全一致,也符合 Python、Go、Java 和 Ruby 中任何規範相容解析器的預期。

JSON 中哪些字元需要跳脫——哪些不需要

JSON 字串中只有一小部分字元具有特殊含義。雙引號 " 必須變為 \",反斜線 \ 必須變為 \\,空白控制字元分別變為 \b\f\n\r\t。U+0020 以下的任何其他控制字元須寫為 \uXXXX 跳脫序列。其他所有內容——字母、數字、單引號、連字號和普通標點符號——均原樣通過,無需更動。這是一個常見誤解:JSON 中單引號無需跳脫,因為 JSON 字串使用雙引號作為定界符,從不使用單引號。

其中任何一處出錯都是 JSON 解析失敗的原因。未跳脫的雙引號會提前結束字串,導致「Unexpected token」錯誤。單獨的反斜線會被解析為跳脫序列的開始——如果下一個字元不是有效的跳脫字元,解析就會失敗。字串中出現字面換行符也不被 JSON 規範所允許。將有問題的值貼到跳脫模式,工具會在一秒內回傳正確跳脫的版本。

跳脫、反跳脫、stringify——各模式的作用

跳脫模式對您的文字進行編碼,使其可以存在於 JSON 字串中。預設情況下,您取得的只是已跳脫的內容,可直接貼到您自己的引號之間;開啟用引號包裹後,您將取得一個完整的帶引號 JSON 字串值——正是 JSON.stringify() 所產生的結果。這就是跳脫(編碼特殊字元)與 stringify(編碼並用引號包裹)之間的差異。兩者產生的輸出都會被任何標準 JSON 解析器接受。

反跳脫模式執行逆向操作,將 \"\\\n\t\uXXXX 解釋還原為其所代表的字元。它接受帶或不帶外圍引號的輸入,並對格式錯誤的跳脫序列回報清晰的錯誤。交換按鈕可將輸出重新放入相反模式下的輸入框,因此往返轉換只需一次點擊——跳脫某內容,驗證輸出,交換,確認還原了原始內容。

Unicode、反斜線、Windows 路徑與 HTML 安全輸出

JSON 預設將 Unicode 儲存為原始 UTF-8,但有時您需要純 ASCII。開啟跳脫非 ASCII 字元 (\uXXXX),每個帶重音的字母或表情符號都會變為 \uXXXX 序列——é 變為 \u00e9😀 變為代理對 \ud83d\ude00。這使舊版解析器和純 ASCII 設定檔在不遺失資料的情況下正常運作。

對於 Windows 檔案路徑和正規表達式模式,反斜線加倍是自動完成的:貼上 C:\Users\me,工具輸出 C:\\Users\\me。對於 HTML 嵌入,跳脫正斜線選項將 / 改寫為 \/,這樣字串值中的關閉 script 標籤就無法突破外圍 HTML——仍然是可正常解析的有效 JSON,但可安全地內嵌到伺服器端渲染的頁面中。JSONLint 等工具可在部署前確認跳脫後的輸出是否有效。

與 JSONLint、jsonformatter.org、VS Code 及伺服器端工具的比較

JSONLint 驗證整個 JSON 文件是否格式正確。jsonformatter.org 對 JSON 進行格式美化以提高可讀性。VS Code 內建格式化程式處理縮排和語法突顯,但不對單個字串值進行跳脫或反跳脫。這些工具都無法填補本工具所涵蓋的空白:修復包含特殊字元的單一字串。使用 jsonformatter.org 進行格式化;使用 JSONLint 進行驗證;使用 VS Code 處理完整檔案;使用本工具修復導致解析器報錯的字串值。

伺服器端 JSON 跳脫工具雖然存在,但存在一個取捨:您的文字會離開您的裝置。如果您正在處理 API 金鑰、密碼、私有設定或使用者資料,將其傳送到外部伺服器是不必要的風險。本工具在用戶端處理一切——沒有任何內容被上傳、記錄或儲存。載入後可離線使用,無需任何網路連線。無需建立帳號,無速率限制,無檔案大小上限。

Frequently asked questions

什麼是 JSON 跳脫?

JSON 跳脫將會破壞 JSON 字串的字元替換為反斜線跳脫序列,使文字可以安全地存在於 JSON 值中。例如,文字他說「你好」經過雙引號跳脫後變為他說\"你好\"。跳脫從不改變文字的含義——它只編碼 JSON 保留的字元。

如何為 JSON 跳脫字串?

在選擇跳脫模式的情況下,將文字貼到輸入框,JSON 安全版本會立即出現在輸出面板中——然後點擊複製。工具會自動為您跳脫雙引號、反斜線、換行符、定位字元和控制字元。如果您需要完整的 JSON 字串值而不僅僅是跳脫後的內容,請開啟「用引號包裹」。無 API 呼叫,無伺服器往返——轉換在您的瀏覽器中使用原生 JavaScript JSON 引擎執行。

JSON 中哪些字元需要跳脫?

在 JSON 字串中,您必須跳脫:雙引號 " 為 \",反斜線 \ 為 \\,以及空白控制字元:退格 \b、換頁 \f、換行 \n、歸位 \r 和定位 \t。U+0000–U+001F 範圍內的任何其他控制字元必須寫為 \uXXXX。正斜線 / 可選擇性地跳脫為 \/,但非必須。字母、數字和普通標點符號(包括單引號)無需跳脫。

如何反跳脫 JSON 字串?

切換到反跳脫模式,貼上已跳脫的字串(帶或不帶外圍引號均可)。工具會將每個跳脫序列轉換回它所代表的字元,因此第1行\n第2行會變成兩個真實的行,\u00e9 會變成 é。使用交換按鈕在兩種模式之間切換。當您從日誌檔案或 API 回應中複製了已跳脫字串並希望閱讀原始文字時,此功能非常有用。

單引號在 JSON 中需要跳脫嗎?

不需要。JSON 字串始終使用雙引號作為定界符,因此單引號(撇號)只是普通字元——沒關係仍然是沒關係,無需反斜線。只有雙引號 " 和反斜線 \ (加上控制字元)才需要跳脫。對於來自 Python 或 Shell 指令稿等語言的開發者,這是一個常見的困惑點,因為那些語言中單引號和雙引號可以互換使用。

線上跳脫 JSON 安全嗎?

是的。本工具 100% 在用戶端執行——所有跳脫和反跳脫均在您的瀏覽器中用 JavaScript 完成,您貼上的內容永遠不會被上傳、記錄或傳送到伺服器。這使其對 API 酬載、權杖、設定和其他敏感文字都是安全的。關閉分頁後,不會留下任何您使用過它的記錄。

跳脫和 stringify 有什麼差別?

跳脫對文字內的特殊字元進行編碼;stringify 在此基礎上還將結果用雙引號包裹,產生完整的 JSON 字串值。對於文字她說「你好」:跳脫給出內容她說\"你好\",而 stringify 給出完整值"她說\"你好\""。「用引號包裹」開關在兩者之間切換——關閉表示僅內容,開啟表示完整帶引號字串(正是 JavaScript 中 JSON.stringify 所產生的結果)。

Related tools

檢視所有工具