У мене проста структура 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.що не повинно виникнути проблем із кодуванням.