使用PHP回应JSON响应

时间:2016-07-21 12:27:04

标签: php json plaid

我正在尝试从Plaid API回应我的一部分JSON响应。

以下是代码:

$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内部服务器错误,它来自echo $ exchangeT行。我想获取JSON响应的access_token部分,回显它以进行验证,最后将其保存到数据库中。

3 个答案:

答案 0 :(得分:3)

如果您在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

答案 1 :(得分:2)

功能签名:

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

从函数定义中,您可以看到第二个参数$assoc默认为false。这个论点的作用(以及它的名字暗示)是,当 TRUE 时,返回的对象将被转换为关联数组

所以,在你的情况下,

$exchangeToken = json_decode($exchangeToken, true);

应该做你需要的。

答案 2 :(得分:1)

只传递true作为第二个参数,如果第二个参数为true,则json_decode()以数组格式而不是object返回。

 $exchangeT = json_decode($exchangeToken, true);