Tengo una estructura php simple con 3 matrices anidadas.
No utilizo objetos particulares y construyo las matrices con 2 bucles anidados.
Aquí hay una muestra del var_dump de la matriz que quiero convertir a 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
En otro script tengo una estructura similar y json_encode
funciona bien. Entonces no entiendo por qué json_encode
no funcionará aquí.
Editar: parece haber un problema con la codificación. Cuando mb_detect_encoding
devuelve ASCII, json_encode
funciona, pero cuando devuelve UTF8, ya no funciona.
Edit2: json_last_error()
devuelve lo JSON_ERROR_UTF8
que significa: caracteres UTF-8 mal formados , posiblemente codificados incorrectamente .
utf8_encode()
en sus name
campos de matriz antes de entregar la cadena a json_encode()
.
JSON_PARTIAL_OUTPUT_ON_ERROR
opción para ver el problema (por ejemplo, el campo con UTF8 será nulo).
This function only works with UTF-8 encoded data.
que no debería haber ningún problema con la codificación.