Mam prostą strukturę php z 3 zagnieżdżonymi tablicami.
Nie używam konkretnych obiektów i sam buduję tablice z 2 zagnieżdżonymi pętlami.
Oto przykład zmiennej var_dump tablicy, którą chcę przekonwertować na 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
W innym skrypcie mam podobną strukturę i json_encode
działa dobrze. Więc nie rozumiem, dlaczego json_encode
tu nie zadziała.
Edycja: wydaje się, że wystąpił problem z kodowaniem. Kiedy mb_detect_encoding
zwraca ASCII, json_encode
działa, ale kiedy zwraca UTF8, już nie działa.
Edit2: json_last_error()
zwraca, JSON_ERROR_UTF8
co oznacza: zniekształcone znaki UTF-8, prawdopodobnie nieprawidłowo zakodowane .
utf8_encode()
na swoich name
polach tablicy przed przekazać ciąg json_encode()
.
JSON_PARTIAL_OUTPUT_ON_ERROR
opcji, aby zobaczyć problem (np. Pole z UTF8 będzie puste).
This function only works with UTF-8 encoded data.
, że nie powinno być żadnych problemów z kodowaniem.