Eu tenho uma estrutura simples de php com 3 matrizes aninhadas.
Eu não uso objetos específicos e construo as matrizes com 2 loops aninhados.
Aqui está um exemplo do var_dump da matriz que desejo converter para 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
Em outro script eu tenho uma estrutura semelhante e json_encode
funciona bem. Então eu não entendo porque json_encode
não funciona aqui.
Editar: parece haver um problema com a codificação. Quando mb_detect_encoding
retorna ASCII, json_encode
funciona, mas quando retorna UTF8, não funciona mais.
Edit2: json_last_error()
retorna o JSON_ERROR_UTF8
que significa: Caracteres UTF-8 malformados, possivelmente codificados incorretamente .
utf8_encode()
em seus name
campos de array antes de entregar a string json_encode()
.
JSON_PARTIAL_OUTPUT_ON_ERROR
opção para ver o problema (por exemplo, o campo com UTF8 será nulo).
This function only works with UTF-8 encoded data.
que não deve haver nenhum problema com a codificação.