Проблема с разбором JSOn - в массиве - PullRequest
0 голосов
/ 21 мая 2019

Я получаю данные из БД в виде массива, а затем выводю их в виде JSON.

Некоторые части моего кода:

 private function getUsers( ){
    $users = $this->db->resource(dbMapper::USER);
 return $this->usersToArray( $users );}

 private function usersToArray( $users ){
        $result = array( );
        foreach ($users as $user){
            $result[] = array(
                'id'            => intval( $user->get('id') ),
                'name'          => $user->get('name')
            );
        }
        return $result;
    }

    public function getAllData( ){ 
        $result = array( );
        $result['users'] = $this->getUsers( );
        $results = print_r($result['users'], true); echo $results;
        return $result;
    }

и затем я получаю JSONиз этого результата:

  $data = $model->getAllData( );
        $this->_helper->json( $data );

Вывод JSON выглядит следующим образом (я удалил данные для отладки), но даже если нет данных, у меня есть синтаксическая ошибка в первой букве массива:

В моем браузере я получил следующее: SyntaxError: JSON.parse: неожиданный символ в строке 1 столбца 1 данных JSON

и если я поместил этот JSOn в валидатор JSON, Я получил это:

Ошибка разбора в строке 1: Массив ([0] => A ^ Ожидается 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE','{', '[', получил 'undefined'

Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
        )

    [2] => Array
        (
        )

    [3] => Array
        (
        )

    [4] => Array
        (
        )

Не уверен, что не так с массивом в JSON ...

1 Ответ

0 голосов
/ 21 мая 2019

Проблема была связана с неправильными символами в поле имени пользователя в БД, что привело к ошибке JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...