PHP, использующий json_encode, должен выводить конкретные данные

Как сказал Алекс Филипович , проблема была неправильной кодировкой. Файл, который я прочитал, был UTF-8-BOM и сбросил указанную выше ошибку на Convert.FromBase64String(). Переход на UTF-8 работал без проблем.

2
задан Roshan 17 January 2019 в 08:53
поделиться

1 ответ

Измените эту часть:

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).

0
ответ дан OlivierH 17 January 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: