Как сказал Алекс Филипович , проблема была неправильной кодировкой. Файл, который я прочитал, был UTF-8-BOM
и сбросил указанную выше ошибку на Convert.FromBase64String()
. Переход на UTF-8
работал без проблем.
Измените эту часть:
foreach ($resp as $value) {
$units = $this->MyModel->get_unit_types($value->project_name);
$allunits = array("unit_types"=>$units);
$allunits = (object) $allunits;
$test_array[$value->project_name] = $allunits;
}
На:
foreach ($resp as $value) {
$units = $this->MyModel->get_unit_types($value->project_name);
$test_array[] = [
"project_name" => $value->project_name,
"unit_types" => $units
];
}
Вам не нужно приводить ассоциативный массив к объекту, как вы это сделали: $allunits = (object) $allunits;
, потому что ассоциативный массив всегда будет сериализован как объект JSON (ассоциативные массивы не существуют в JSON).