Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah `json_encode` PHP Menganggap Nombor sebagai Rentetan dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `json_encode` PHP Menganggap Nombor sebagai Rentetan dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Lepaskan: 2024-11-25 14:58:12
asal
1014 orang telah melayarinya

Why Does PHP's `json_encode` Treat Numbers as Strings, and How Can I Fix It?

json_encode PHP Mengekodkan Nombor sebagai Rentetan: Dilema Selesai

JSON (JavaScript Object Notation) ialah format pertukaran data yang digunakan secara meluas. Apabila menggunakan fungsi json_encode PHP untuk menukar tatasusunan atau objek PHP kepada JSON, ia menghadapi isu biasa: nombor dikodkan sebagai rentetan. Sebagai contoh, tatasusunan dengan kunci berangka, { "id": "3" }, mungkin dijangkakan, tetapi sebaliknya, json_encode menghasilkan { "id": 3 }. Tingkah laku ini boleh menyebabkan percanggahan apabila JavaScript mentafsir nilai sebagai rentetan, yang membawa kepada operasi berangka yang gagal.

Nasib baik, PHP 5.3 dan versi yang lebih baru menawarkan penyelesaian kepada masalah ini. Dengan menggunakan bendera JSON_NUMERIC_CHECK semasa pengekodan, isu ini boleh diatasi. Bendera ini mencetuskan penukaran automatik nilai angka kepada nombor dalam rentetan JSON yang dikodkan. Untuk menggambarkan, coretan kod di bawah menunjukkan cara memanfaatkan bendera ini:

$arr = array( 'row_id' => '1', 'name' => 'George' );
echo json_encode( $arr, JSON_NUMERIC_CHECK ); // {"row_id":1,"name":"George"}
Salin selepas log masuk

Seperti yang anda boleh perhatikan, kekunci berangka kini dikodkan dengan betul sebagai nombor, memastikan keserasian dengan operasi berangka dalam JavaScript. Kaedah mudah tetapi berkesan ini memperkasakan pembangun untuk mengurus proses pengekodan dengan berkesan dan mengelakkan penukaran rentetan nombor yang tidak diingini dalam JSON, meningkatkan kesalingoperasian aplikasi mereka.

Atas ialah kandungan terperinci Mengapakah `json_encode` PHP Menganggap Nombor sebagai Rentetan dan Bagaimana Saya Boleh Membetulkannya?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan