Доступ к данным JSON, возвращенным SendGrid
Я работаю с библиотекой PHP SendGrid ( https://sendgrid.com/docs/Integrate/Code_Examples/php.html).
Ответ отправляется задом JSON - например, должно быть что-то вроде:
{"message":"success"}
Я могу отправить простое электронное письмо через:
<?php
$root="../../";
require $root . 'vendor/autoload.php';
$sendgrid = new SendGrid($SendGrid);
$email = new SendGrid\Email();
$email
//->addTo('you@me.com')
->addTo('you@me.com')
->setFrom('me@bar.com')
->setSubject('Subject goes here')
->setText('Hello World!')
->setHtml('<strong>Hello World!</strong>')
;
$res = $sendgrid->send($email);
?>
Когда я отображаю вывод $res, например, используя PHP-REF ( https://github.com/digitalnature/php-ref), я вижу, что это выглядит так:
Похоже, ответ является объектом - предположительно JSON?
Тем не менее, я не могу получить доступ к данным как JSON, потому что если я попробую это:
$newtxt = json_decode($res);
Я получаю эту ошибку:
Предупреждение: json_decode() ожидает, что параметр 1 будет строкой, объект указан в C:\xampp\htdocs\jim\001-jimpix\contact_old\test-send-grid.php в строке 24
И если я попробую это:
$j_array = json_decode($res, true);
Я получаю ту же ошибку.
Я могу жестко закодировать значение "$res" как:
$res = "{\"message\":\"success\"}";
И тогда это работает.
Однако я не могу понять, как получить доступ к JSON, возвращенному SendGrid.
Я пробовал разные вещи, такие как:
$res = json_decode(json_encode($res),TRUE);
Предположительно, есть способ получить доступ к JSON, возвращенному SendGrid, чтобы я мог получить доступ к данным JSON.
Но я не знаю как?
1 ответ
Как вы можете видеть из ответа PHP-REF, $res
это не сырой JSON.
Вы можете получить доступ к результату, просто используя $res->getBody()
, Это даст вам проанализированный JSON из SendGrid.
Вам не нужно json_decode
этот.