首頁 >後端開發 >php教程 >為什麼我的 JSON 編碼資料中有反斜線?

為什麼我的 JSON 編碼資料中有反斜線?

Susan Sarandon
Susan Sarandon原創
2024-11-11 07:19:03957瀏覽

Why are there backslashes in my JSON encoded data?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn