2016-04-24 19 views
0

私はSendGrid PHPライブラリ(https://sendgrid.com/docs/Integrate/Code_Examples/php.html)を使用しています。SendGridから返されたJSONデータへのアクセス

応答が返されます。私は$解像度などの出力を表示すると

<?php 
$root="../../"; 
require $root . 'vendor/autoload.php'; 

$sendgrid = new SendGrid($SendGrid); 
$email = new SendGrid\Email(); 
$email 
    //->addTo('[email protected]') 
    ->addTo('[email protected]') 
    ->setFrom('[email protected]') 
    ->setSubject('Subject goes here') 
    ->setText('Hello World!') 
    ->setHtml('<strong>Hello World!</strong>') 
; 

$res = $sendgrid->send($email); 
?> 

:私は経由して簡単な電子メールを送信することができます

{"message":"success"} 

:次のようになりますPHP-REF(https://github.com/digitalnature/php-ref)を使用して、私はそれがこのようになっていることを見ることができます。

PHP-REF view of $res returned by SendGrid

応答がオブジェクトで表示されます - おそらくJSON?

$newtxt = json_decode($res); 

私はこのエラーを取得する:

Warning: json_decode() expects parameter 1 to be string, object given in C:\xampp\htdocs\jim\001-jimpix\contact_old\test-send-grid.php on line 24

そして、私はこのしようとした場合:

$j_array = json_decode($res, true); 
を私はこれをしようとするので

しかし、私は、JSONなどのデータにアクセスすることはできません

同じエラーが発生します。

私はハードとしての価値を "$はRES" コーディングすることができます。

$res = "{\"message\":\"success\"}"; 

そして動作します。

しかし、私はSendGridから返されたJSONにアクセスする方法を考えることができません。

私は次のようにいろいろなことを試してみた:

$res = json_decode(json_encode($res),TRUE); 

は、おそらく私はJSONデータにアクセスすることができSendGridによって返されたJSONにアクセスする方法があります。

しかし、私はどのようにわからないのですか?

答えて

1

PHP-REFの応答からわかるように、$resは生のJSONではありません。

$res->getBody()を使用するだけで結果にアクセスできます。これにより、SendGridから解析されたJSONが得られます。

お客様にはjson_decodeが必要です。

+0

お世話になりました、トーマス、ありがとうございました。 – 4532066

関連する問題