ฉันทำแบบทดสอบอย่างรวดเร็วมาก:
$a = array(
'id' => 152,
'another' => 'test',
'ananother' => 456,
);
$json = json_encode($a);
echo $json;
นี่ดูเหมือนจะเป็นสิ่งที่คุณอธิบายถ้าฉันไม่เข้าใจผิด
และฉันได้รับเป็นผลลัพธ์:
{"id":152,"another":"test","ananother":456}
ดังนั้นในกรณีนี้จำนวนเต็มไม่ได้ถูกแปลงเป็นสตริง
ถึงกระนั้นนี่อาจขึ้นอยู่กับเวอร์ชั่นของ PHP ที่เราใช้อยู่มีการแก้ไขข้อผิดพลาดที่เกี่ยวข้องกับ json_encode ขึ้นอยู่กับเวอร์ชันของ PHP ...
การทดสอบนี้ทำกับ PHP 5.2.6; ฉันได้รับสิ่งเดียวกันกับ PHP 5.2.9 และ 5.3.0; ฉันไม่มีเวอร์ชัน 5.2.x ที่จะทำการทดสอบด้วย :-(
คุณใช้ PHP รุ่นไหน หรือกรณีทดสอบของคุณซับซ้อนกว่าตัวอย่างที่คุณโพสต์หรือไม่
อาจรายงานข้อผิดพลาดหนึ่งรายการในhttp://bugs.php.net/อาจเกี่ยวข้องกัน ตัวอย่างเช่นBug # 40503: การแปลงจำนวนเต็ม json_encode ไม่สอดคล้องกับ PHP ?
บางทีBug # 38680ก็สนใจคุณเหมือนกัน btw?