【问题标题】:how to parse a json mailgun sendmessage response in php?如何在 php 中解析 json mailgun sendmessage 响应?
【发布时间】:2013-12-11 16:03:30
【问题描述】:

这是我的代码:

$this->view->assign('mail', $mail);
         $mg = new Mailgun($this->getMailgunAPIKey());
         $domain = "sandbox1111.mailgun.org";  
         $res =  $mg->sendMessage($domain, array('from'    => 'bob@sandbox3445.mailgun.org', 
                            'to'      => 'mee@xxxxx.com', 
                            'subject' => $mail->getSubject(), 
                            'text'    => $mail->getBody()));
         var_dump( $res); 

这是 var_dump 打印出来的内容:

object(stdClass)#228 (2) { ["http_response_body"]=> object(stdClass)#223 (2) { ["message"]=> string(18) "Queued. Thank you." ["id"]=> string(52) "<20131211155824.31559.48115@sandbox1111.mailgun.org>" } ["http_response_code"]=> int(200) }

我尝试了var_dump( json_decode($res));,但打印出 NULL。例如,如何访问 ["http_response_code"]?

答案:

  var_dump( $res); 
         echo __LINE__.'<br/><br/>';
         var_dump( $res->http_response_body );
         echo __LINE__.$res->http_response_code.'<br/><br/>';
         echo $res->http_response_body->message.'<br/><br/>';

打印

object(stdClass)#228 (2) { ["http_response_body"]=> object(stdClass)#223 (2) { ["message"]=> string(18) "Queued. Thank you." ["id"]=> string(52) "<20131211161740.16663.18744@sandbox3445.mailgun.org>" } ["http_response_code"]=> int(200) } 150

object(stdClass)#223 (2) { ["message"]=> string(18) "Queued. Thank you." ["id"]=> string(52) "<20131211161740.16663.18744@sandbox3445.mailgun.org>" } 152200

Queued. Thank you.

【问题讨论】:

    标签: php json parsing sendmessage mailgun


    【解决方案1】:

    您的变量已经 json_decoded,第二个参数为falsejson_decode() 默认使用对象(在这种情况下默认 = false),如果你想要一个数组,请使用第二个参数true,参见http://php.net/json_decode

    我更喜欢对象符号。

    例如,我如何访问 ["http_response_code"]?

    $res->http_response_body
    
    echo $res->http_response_body->message
    //prints "Queued. Thank you."
    

    【讨论】:

    • 感谢丹!我一直在使用第二个参数,但这样它也返回了 NULL。我猜 mailgun php 库已经对对象进行了解码。
    • 是的,显然已经在 Mailgun 中解码。如果您看到任何stdClass,您总是通过-&gt; 访问成员,很高兴为您提供帮助,谢谢
    • 谢谢,您为我节省了很多时间。我最终使用了echo json_encode ($result-&gt;http_response_body);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2013-01-26
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多