Bagaimanakah Saya Boleh Mengendalikan Data JSON Cacat dengan Teguh dalam PHP menggunakan `json_decode()`?

DDD
Lepaskan: 2024-11-23 11:24:11
asal
727 orang telah melayarinya

How Can I Robustly Handle Malformed JSON Data in PHP using `json_decode()`?

Mengendalikan Data JSON Cacat dengan json_decode() PHP

Apabila bekerja dengan data JSON dalam PHP menggunakan json_decode(), adalah penting untuk mengendalikan tidak sah data untuk mengelakkan ralat yang tidak dijangka. Kod berikut menunjukkan pendekatan biasa:

if (!json_decode($_POST)) {
  echo "bad json data!";
  exit;
}
Salin selepas log masuk

Walaupun pendekatan ini berfungsi untuk beberapa format JSON yang tidak sah, ia gagal mengesan ralat jika data JSON bukan rentetan. Untuk menangani perkara ini, pertimbangkan cerapan berikut:

  • json_decode() Gelagat: Ia mengembalikan null jika terdapat ralat, termasuk apabila ia menjangkakan rentetan tetapi menerima tatasusunan.
  • Amaran: json_decode() mengeluarkan amaran jika ia menemui data tidak sah.

Untuk mengendalikan kedua-dua senario, anda boleh menggunakan beberapa strategi:

  1. Sekat Amaran dengan '@':
$_POST = ['invalid data'];
$data = @json_decode($_POST);
Salin selepas log masuk

Walau bagaimanapun, kaedah ini tidak disyorkan kerana ia boleh membuat penyahpepijatan mencabar.

  1. Semak `json_last_error()':
if ($data === null && json_last_error() !== JSON_ERROR_NONE) {
  echo "incorrect data";
}
Salin selepas log masuk

Pendekatan ini menyemak kod ralat dan mengendalikannya dengan sewajarnya.

  1. Tersuai Penyelesaian:

Anda boleh mencipta fungsi tersuai untuk mengesahkan data JSON, mengambil kira kedua-dua input JSON dan bukan rentetan yang sah.

Ringkasnya, dengan memanfaatkan teknik ini, anda boleh mengendalikan data JSON yang cacat dalam aplikasi PHP anda dengan berkesan, memastikan pengalaman yang lebih mantap dan bebas ralat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Data JSON Cacat dengan Teguh dalam PHP menggunakan `json_decode()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan