許虎虎 開發者工具集

JSON 轉義

輸入
輸出:
JSON 轉義

在 JSON(JavaScript Object Notation)中,轉義(escaping)是用來處理特殊字符的技術,特別是那些在 JSON 格式中具有特殊意義的字符。這些字符需要進行轉義,否則會造成 JSON 結構無法正確解析或會引發錯誤。

JSON 轉義字符
JSON 格式中的轉義字符通常是以反斜杠(\)開頭,後面跟隨一個特殊字符。常見的 JSON 轉義字符如下:

反斜杠(\):如果字串中包含反斜杠(\),則需要用 \\ 來表示。

例子:"path": "C:\\Users\\John"
雙引號("):字串中的雙引號必須使用反斜杠來轉義,避免與 JSON 的字串邊界符號(雙引號)衝突。

例子:"quote": "He said, \"Hello!\""
換行符(\n):表示換行。

例子:"text": "Line 1\nLine 2"
回車符(\r):表示回車。

例子:"text": "Hello\rWorld"
制表符(\t):表示 Tab 鍵(水平制表符)。

例子:"text": "Hello\tWorld"
退格符(\b):表示退格符。

例子:"text": "Hello\bWorld"
換頁符(\f):表示換頁符。

例子:"text": "Hello\fWorld"
Unicode 字符(\u):以 Unicode 編碼表示特殊字符,後面跟隨四位十六進制數字。

例子:"emoji": "\uD83D\uDE03"(這表示一個笑臉符號)
JSON 轉義範例
假設我們有一個包含特殊字符的 JSON 對象:

原始資料:
json

{
"name": "John \"The Man\" Doe",
"address": "C:\\Users\\John",
"bio": "He said, \"Hello!\"",
"text": "Line 1\nLine 2"
}
轉義後的 JSON:
json

{
"name": "John \"The Man\" Doe",
"address": "C:\\Users\\John",
"bio": "He said, \"Hello!\"",
"text": "Line 1\nLine 2"
}
在這個範例中:

"John \"The Man\" Doe" 用兩個雙引號(\")來表示字串中的引號。
"C:\\Users\\John" 用兩個反斜杠(\\)來表示字串中的反斜杠。
"He said, \"Hello!\"" 同樣使用兩個雙引號來轉義字串中的引號。
"Line 1\nLine 2" 使用 \n 來表示換行。
JSON 轉義需要注意的地方:
雙引號的轉義:在 JSON 中,字串必須用雙引號包圍,如果字串本身有雙引號,需要將它們轉義。
反斜杠的轉義:反斜杠是 JSON 中的轉義字符,因此字串中的反斜杠必須轉義為 \\。
Unicode 字符:如果字串中有非 ASCII 字符,可以使用 \u 來表示,這是處理特殊字符的有效方式,尤其是當需要處理多國語言的字符時。
使用 JSON 轉義的實際場景:
處理包含特殊字符的用戶輸入:用戶可能會輸入包含引號或換行符等字符的數據,這時必須對這些字符進行轉義,防止 JSON 格式錯誤。
跨語言、跨平台的數據交換:當在不同系統或語言間交換 JSON 數據時,轉義確保了特殊字符能夠正確解析和顯示。
小結:
JSON 轉義的主要目的是確保字串中的特殊字符(如引號、反斜杠、換行符等)能夠被正確處理,以避免語法錯誤並保持數據的正確性。