許虎虎 開發者工具集
JSON URL 編碼

JSON URL 編碼 是將 JSON 資料轉換為一種可以在 URL 中安全傳輸的格式,通常這意味著將 JSON 物件轉換為 URL 安全的字串形式。在許多情況下,JSON 資料會被作為 HTTP 請求的一部分傳遞,例如作為查詢參數,並且 URL 中的特殊字符(如 &、?、= 和空格)必須進行編碼,以防止它們影響 URL 的結構。

JSON URL 編碼的過程
將 JSON 轉換為字串:
首先,將 JSON 資料轉換為字串格式。這通常使用 JSON.stringify()(在 JavaScript 中)來完成,或 json.dumps()(在 Python 中)來處理。
對 JSON 字串進行 URL 編碼:
一旦 JSON 被轉換為字串,就需要對其中的特殊字符進行 URL 編碼。這將會把例如空格、&、= 等字符轉換為 %20、%26、%3D 等形式。
JSON URL 編碼的範例
假設我們有一個簡單的 JSON 物件:

json

{
"name": "John Doe",
"age": 30,
"city": "New York"
}
將 JSON 轉換為字串:

json

{"name":"John Doe","age":30,"city":"New York"}
對 JSON 字串進行 URL 編碼: 使用 URL 編碼將字串中的特殊字符(如空格)轉換為 %20:

perl

%7B%22name%22%3A%22John%20Doe%22%2C%22age%22%3A30%2C%22city%22%3A%22New%20York%22%7D
在這裡:

{ 和 } 被編碼為 %7B 和 %7D。
: 被編碼為 %3A。
空格被編碼為 %20。
, 被編碼為 %2C。
JSON URL 編碼的 Python 範例
在 Python 中,你可以使用 json 模組將 JSON 物件轉換為字串,然後使用 urllib.parse 模組來進行 URL 編碼。以下是如何將 JSON 物件進行 URL 編碼的範例:

python

import json
import urllib.parse

# JSON 物件
data = {
"name": "John Doe",
"age": 30,
"city": "New York"
}

# 將 JSON 物件轉換為字串
json_string = json.dumps(data)

# 進行 URL 編碼
encoded_json = urllib.parse.quote(json_string)

# 輸出編碼後的 JSON 字串
print(encoded_json)
輸出結果:

perl

%7B%22name%22%3A%22John%20Doe%22%2C%22age%22%3A30%2C%22city%22%3A%22New%20York%22%7D
JSON URL 編碼的應用
將 JSON 資料作為查詢參數: 在許多情況下,JSON 資料可能需要作為 HTTP 查詢參數傳遞。URL 編碼使得 JSON 字串能夠安全地作為 URL 的一部分進行傳遞。

例如,假設你有以下 URL:

perl

https://example.com/api?data=%7B%22name%22%3A%22John%20Doe%22%2C%22age%22%3A30%2C%22city%22%3A%22New%20York%22%7D
這個 URL 包含了一個名為 data 的查詢參數,該參數包含 JSON 字串。

API 請求: 當你需要在 URL 中傳遞一個包含多個屬性的 JSON 物件時,這樣的編碼就非常有用。API 可能會需要將 JSON 資料作為 URL 的一部分傳遞,URL 編碼可確保 JSON 資料中的特殊字符不會干擾請求的格式。

保證數據的正確傳輸: 在 URL 中進行編碼可確保資料中可能會被誤解的字符(如空格、& 和 =)不會影響數據的解析,從而確保數據的完整性。