Ho una semplice struttura php con 3 array annidati.
Non utilizzo oggetti particolari e costruisco io stesso gli array con 2 loop annidati.
Ecco un esempio del var_dump dell'array che voglio convertire in 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
In un altro script ho una struttura simile e json_encode
funziona bene. Quindi non capisco perché json_encode
non funzionerà qui.
Modifica: sembra esserci un problema con la codifica. Quando mb_detect_encoding
restituisce ASCII, json_encode
funziona ma quando restituisce UTF8, non funziona più.
Modifica2: json_last_error()
restituisce JSON_ERROR_UTF8
che significa: caratteri UTF-8 malformati , probabilmente codificati in modo errato .
utf8_encode()
sui vostri name
campi matrice prima di consegnare la stringa json_encode()
.
JSON_PARTIAL_OUTPUT_ON_ERROR
opzione per vedere il problema (es. Il campo con UTF8 sarà nullo).
This function only works with UTF-8 encoded data.
non dovrebbero esserci problemi con la codifica.