Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah `json_encode` Menambahkan Sebatan Terbalik pada Data JSON Saya?

Mengapakah `json_encode` Menambahkan Sebatan Terbalik pada Data JSON Saya?

Patricia Arquette
Patricia Arquetteasal
2024-11-11 16:46:03624semak imbas

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

Mengapa Json_encode Menambah Backslashes?

Setelah menggunakan json_encode dalam skrip muat naik fail, didapati bahawa data JSON yang terhasil mengandungi yang tidak dijangka garis miring ke belakang. Ini menimbulkan persoalan mengapa json_encode memperkenalkan escape ini.

Pilihan JSON_UNESCAPED_SLASHES

Jawapannya terletak pada pilihan khusus yang tersedia dalam json_encode. Secara lalai, json_encode melepaskan aksara tertentu, termasuk garis miring (garis miring ke belakang), untuk memastikan JSON yang dijana kekal sah. Walau bagaimanapun, dalam beberapa kes, seperti apabila berurusan dengan URL seperti yang disediakan, pelarian ini boleh menjadi tidak diingini.

Untuk menangani perkara ini, pilihan JSON_UNESCAPED_SLASHES telah diperkenalkan dalam PHP versi 5.4. Apabila digunakan, pilihan ini mengarahkan json_encode untuk mengelak daripada melepaskan garis miring, menyelesaikan isu yang dihadapi dengan berkesan.

Pengubahsuaian Kod

Untuk melaksanakan penyelesaian, hanya masukkan pemalar JSON_UNESCAPED_SLASHES sebagai parameter kedua dalam fungsi json_encode. Kod yang diubah suai sepatutnya kelihatan seperti ini:

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

Ini memastikan JSON yang terhasil tidak mengandungi sebarang garis miring ke belakang yang tidak perlu, memberikan hasil yang diingini:

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

Atas ialah kandungan terperinci Mengapakah `json_encode` Menambahkan Sebatan Terbalik pada Data JSON Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn