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

Mengapakah `json_encode` PHP Menukar Nombor kepada Rentetan dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Lepaskan: 2024-11-30 19:12:15
asal
402 orang telah melayarinya

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

Isu Pengekodan JSON: PHP json_encode Menukar Nombor kepada Rentetan

Fungsi json_encode dalam PHP dihadapi dengan isu di mana nilai berangka dikodkan sebagai rentetan semasa proses pengekodan JSON. Ini mengakibatkan JavaScript, apabila menemui rentetan yang dikodkan ini, mentafsirkannya sedemikian, yang membawa kepada ralat dalam operasi berangka. Contohnya:

array('id' => 3)
Salin selepas log masuk

Mengekodkan kepada:

{ ["id": "3", ...)
Salin selepas log masuk

Apabila JavaScript mengakses sifat "id" ini, ia ditafsirkan sebagai rentetan, menyebabkan kegagalan dalam pengiraan berangka.

Penyelesaian: Cegah Pengekodan Rentetan

Untuk mengelakkan json_encode daripada menukar nombor kepada rentetan, penyelesaian wujud dalam PHP versi 5.3.3 dan kemudian:

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

Dengan menyatakan bendera JSON_NUMERIC_CHECK, nombor akan ditukar secara automatik kepada jenis angka semasa proses pengekodan JSON:

{"row_id":1,"name":"George"}
Salin selepas log masuk

Ini memastikan JavaScript dapat mengenal pasti dan memanipulasi nilai dengan betul sebagai nombor.

Atas ialah kandungan terperinci Mengapakah `json_encode` PHP Menukar Nombor kepada 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