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

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

Patricia Arquette
發布: 2024-11-11 16:46:03
原創
692 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板