JSON 編碼中的反斜線轉義
使用json_encode 將關聯數組轉換為JSON 時,有些使用者遇到編碼資料包含以下內容的問題不需要的反斜線。此問題源自於 JSON 編碼過程和後續解析之間潛在的不匹配。
反斜杠的根本原因
PHP 中的標準 JSON 編碼會轉義特殊字符,包括反斜杠,確保數據完整性。但是,如果編碼後的資料被 .parseJSON 等外部 JavaScript 函數進一步處理,可能會導致意外的雙重轉義。
解決方案: JSON_UNESCAPED_SLASHES 選項
解決對於此問題,您可以明確指定 JSON_UNESCAPED_SLASHES 選項為 json_encode 的第二個參數。此選項指示 PHP 在程式設計過程中不要轉義反斜杠,從而消除雙重轉義問題。
$result = [ 'logo_url' => 'http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg', 'img_id' => 54, 'feedback' => [ 'message' => 'File uploaded', 'success' => 1 ] ]; echo json_encode($result, JSON_UNESCAPED_SLASHES);
此程式碼將輸出有效的 JSON,無需任何額外的反斜線:
{"logo_url":"http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg","img_id":"54","feedback":{"message":"File uploaded","success":true}}
以上是為什麼我的 JSON 編碼資料中有反斜線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!