Tôi có một cấu trúc php đơn giản với 3 mảng lồng nhau.
Tôi không sử dụng các đối tượng cụ thể và tôi tự xây dựng các mảng với 2 vòng lặp lồng nhau.
Đây là một ví dụ về var_dump của mảng mà tôi muốn chuyển đổi thành 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
Trong một kịch bản khác, tôi có cấu trúc tương tự và json_encodehoạt động tốt. Vì vậy, tôi không hiểu tại sao json_encodesẽ không hoạt động ở đây.
Chỉnh sửa: có vẻ như có vấn đề với mã hóa. Khi mb_detect_encodingtrả về ASCII, nó json_encodehoạt động nhưng khi trả về UTF8, nó không hoạt động nữa.  
Edit2: json_last_error()trả về JSON_ERROR_UTF8có nghĩa là: Các ký tự UTF-8 không đúng định dạng, có thể được mã hóa không chính xác .
utf8_encode()trên namecác trường mảng của bạn trước khi bạn chuyển chuỗi cho json_encode().
                JSON_PARTIAL_OUTPUT_ON_ERRORtùy chọn để xem vấn đề (ví dụ: trường có UTF8 sẽ là trống).
                
This function only works with UTF-8 encoded data.vì vậy sẽ không có bất kỳ vấn đề gì với việc mã hóa.