JSON не может быть сериализован.Не в правильном формате - PullRequest
0 голосов
/ 30 сентября 2018

Я вызываю функцию из API при тестировании в Почтальоне. Я получаю запрошенный результат в виде ответа JSON, а при использовании в приложении iOS возвращает ошибку.

                if (isset($this->request->get['json']) and $this->request->get['json'] == 123) {

                    $this->load->model('api/tokenupdate');
                    $bearer = $this->model_api_tokenupdate->getBearerToken();
                    $token =   $this->model_api_tokenupdate->get_token_data($bearer);
                    if ($token) {
                        $this->model_api_tokenupdate->update_session($token['access_token'], json_decode($token['data'], true));
                        $this->model_api_tokenupdate->update_server_session();
                    }else{
                        echo "Error";
                        exit;
                    }

                    $this->response->addHeader('Content-Type: application/json');
                    $this->response->setOutput(json_encode($this->data));
                }else{

                    $this->response->setOutput($this->render());
                }

JSON не можетбыть сериализован из-за ошибки: данные не могут быть прочитаны, потому что они не в правильном формате.

Даже при попытке HTTP-запроса в браузере я получил ответ об ошибке вместо успешного ответа.

Я полностью сбит с толку, почему эта ошибка и все вроде бы хорошо, как тест в Почтальоне.

Я вызываю API, используя Alamofire

Alamofire.request(urlString,method: method,parameters:params).validate().responseJSON { response in

UPD1:Когда я var_dump ($ token) в почтальоне в качестве положительного результата, я получаю массив

array(7) {
  ["access_token"]=>
  string(40) "1abc1234a1234567a4dfcc20042b67b22dd45f1c"
  ["client_id"]=>
  string(21) "shopping_oauth_client"
  ["user_id"]=>
  NULL
  ["expires"]=>
  string(19) "1970-01-01 13:08:29"
  ["scope"]=>
  NULL
  ["session_id"]=>
  string(26) "aipsfc22p64ff99ugt35e9kc2d"
  ["data"]=>
  string(145) "{"language":"en","currency":"USD","cart":[],"rest_session_id":"aipsfc22p64ff99ugt35e9kc2d","token_id":"1abc1234a1234567a4dfcc20042b67b22dd45f1c"}"
}

В то время как HTTP-запрос в браузере или приложении я получаю bool(false)

...