首頁  >  文章  >  後端開發  >  為什麼「json_encode」要為我的 JSON 資料添加反斜線?

為什麼「json_encode」要為我的 JSON 資料添加反斜線?

Patricia Arquette
Patricia Arquette原創
2024-11-11 16:46:03624瀏覽

Why Does `json_encode` Add Backslashes to My JSON Data?

為什麼 Json_encode 增加反斜線?

在檔案上傳腳本中使用 json_encode 時,發現產生的 JSON 資料包含意外的內容反斜線。這就提出了為什麼 json_encode 會引入這些轉義的問題。

JSON_UNESCAPED_SLASHES 選項

答案在於 json_encode 中可用的特定選項。預設情況下,json_encode 會轉義某些字符,包括斜線(反斜線),以確保產生的 JSON 保持有效。然而,在某些情況下,例如在處理像所提供的 URL 時,這些轉義可能是不可取的。

為了解決這個問題,PHP 5.4 版本中引入了 JSON_UNESCAPED_SLASHES 選項。使用時,此選項指示 json_encode 避免轉義斜杠,從而有效解決手邊的問題。

程式碼修改

要實現此解決方案,只需將 JSON_UNESCAPED_SLASHES 常數合併為json_encode 函數中的第二個參數。修改後的程式碼應如下所示:

echo json_encode($result, JSON_UNESCAPED_SLASHES); // <-- Adds the JSON_UNESCAPED_SLASHES option

這可確保產生的 JSON 不包含任何不必要的反斜杠,從而提供所需的結果:

{
  "logo_url": "http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg",
  "img_id": "54",
  "feedback": {
    "message": "File uploaded",
    "success": true
  }
}

以上是為什麼「json_encode」要為我的 JSON 資料添加反斜線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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