Эхо JSON-ответ с переполнением стека

Я пытаюсь повторить часть моего ответа JSON от Plaid API.

Вот код:

$data = array(
"client_id"=>"test_id",
"secret"=>"test_secret",
"public_token"=>"test,fidelity,connected");
$string = http_build_query($data);

//initialize session
$ch=curl_init("https://tartan.plaid.com/exchange_token");

//set options
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//execute session
$exchangeToken = curl_exec($ch);
echo $exchangeToken;
$exchangeT = json_decode($exchangeToken);
echo $exchangeT['access_token'];
//close session
curl_close($ch);

Вот ответ:

{ "sandbox": true, "access_token": "test_fidelity" }

Я также получаю 500 Internal Server Error, которая возникает из строки echo $ exchangeT. Я хочу взять часть access_token ответа JSON, повторить его для проверки и в конечном итоге сохранить в базе данных.

2

Решение

Если вы пройдете true как second parameter в вашем json_decode тогда вы получите array вместо object
так
изменить это

     $exchangeT = json_decode($exchangeToken, true);
// it wii output as $exchangeT = array('sandbox'=>true,'access_token'=>'test_fidelity');
echo $exchangeT['access_token'];

для получения дополнительной информации читайте http://php.net/manual/en/function.json-decode.php

3

Другие решения

И подпись функции:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

Из определения функции видно, что второй аргумент $assoc по умолчанию false, Что делает этот аргумент (и это предполагает название), это когда ПРАВДА, возвращенные объекты будут преобразованы в ассоциативные массивы.

Итак, в вашем случае,

$exchangeToken = json_decode($exchangeToken, true);

должен делать то, что вам нужно.

2

просто передайте true в качестве второго параметра, json_decode () возвращает в формате массива вместо объекта, если второй параметр имеет значение true.

 $exchangeT = json_decode($exchangeToken, true);
1
По вопросам рекламы [email protected]