ฉันมีโครงสร้าง php อย่างง่ายที่มีอาร์เรย์ซ้อนกัน 3 อาร์เรย์
ฉันไม่ได้ใช้ออบเจ็กต์เฉพาะและสร้างอาร์เรย์ด้วยตัวเองโดยมี 2 ลูปซ้อนกัน
นี่คือตัวอย่าง var_dump ของอาร์เรย์ที่ฉันต้องการแปลงเป็น Json
array (size=2)
'tram B' =>
array (size=2)
0 =>
array (size=3)
'name' => string 'Ile Verte' (length=9)
'distance' => int 298
'stationID' => int 762
1 =>
array (size=3)
'name' => string 'La Tronche Hôpital' (length=18)
'distance' => int 425
'stationID' => int 771
16 =>
array (size=4)
0 =>
array (size=3)
'name' => string 'Bastille' (length=8)
'distance' => int 531
'stationID' => int 397
1 =>
array (size=3)
'name' => string 'Xavier Jouvin' (length=13)
'distance' => int 589
'stationID' => int 438
ในสคริปต์อื่นฉันมีโครงสร้างที่คล้ายกันและjson_encode
ทำงานได้ดี เลยไม่เข้าใจว่าทำไมjson_encode
จะไม่ทำงานที่นี่
แก้ไข: ดูเหมือนจะมีปัญหากับการเข้ารหัส เมื่อmb_detect_encoding
ส่งคืน ASCII การjson_encode
ทำงาน แต่เมื่อส่งคืน UTF8 จะไม่ทำงานอีกต่อไป
Edit2: json_last_error()
ผลตอบแทนJSON_ERROR_UTF8
ซึ่งหมายถึง: ในรูปแบบ UTF-8 ตัวอักษรอาจจะไม่ถูกต้องเข้ารหัส
utf8_encode()
บนทุ่งอาร์เรย์ก่อนที่จะมอบสตริงname
json_encode()
JSON_PARTIAL_OUTPUT_ON_ERROR
ตัวเลือกเพื่อดูปัญหา (เช่นฟิลด์ที่มี UTF8 จะเป็นค่าว่าง)
This function only works with UTF-8 encoded data.
ดังนั้นจึงไม่ควรมีปัญหากับการเข้ารหัส