2016-06-28 7 views
0

私はCoinBaseの新しい蜂です。レスポンスオブジェクトをPHPの配列に変換

私はすべてのアカウントを取得するためにgetAccounts()メソッドを使用しています。

$this->client->getAccounts(); 

これは、(アレイ)を使用して応答を変換型オブジェクトのオブジェクト(Coinbase \ウォレット\リソース\ ResourceCollection)

object(Coinbase\Wallet\Resource\ResourceCollection)[37] 
    private 'previousUri' => null 
    private 'nextUri' => null 
    private 'resources' => 
    array (size=1) 
     0 => 
     object(Coinbase\Wallet\Resource\Account)[35] 
      private 'name' => string 'BTC Wallet' (length=10) 
      private 'primary' => boolean true 
      private 'type' => string 'wallet' (length=6) 
      private 'currency' => string 'BTC' (length=3) 
      private 'balance' => 
      object(Coinbase\Wallet\Value\Money)[43] 
       ... 
      private 'nativeBalance' => 
      object(Coinbase\Wallet\Value\Money)[47] 
       ... 
      private 'createdAt' => 
      object(DateTime)[48] 
       ... 
      private 'updatedAt' => 
      object(DateTime)[49] 
       ... 
      private 'id' (Coinbase\Wallet\Resource\Resource) => string 'b12d3892-1228-5da1-a779-c5104bcbd749' (length=36) 
      private 'resource' (Coinbase\Wallet\Resource\Resource) => string 'account' (length=7) 
      private 'resourcePath' (Coinbase\Wallet\Resource\Resource) => string '/v2/accounts/b12d3892-1228-5da1-a779-c5104bcbd749' (length=49) 
      private 'rawData' (Coinbase\Wallet\Resource\Resource) => 
      array (size=11) 
       ... 

を返す応答して無効な文字を与えています。

array (size=3) 
    '�Coinbase\Wallet\Resource\ResourceCollection�previousUri' => null 
    '�Coinbase\Wallet\Resource\ResourceCollection�nextUri' => null 
    '�Coinbase\Wallet\Resource\ResourceCollection�resources' => 
    array (size=1) 
     0 => 
     object(Coinbase\Wallet\Resource\Account)[35] 
      private 'name' => string 'BTC Wallet' (length=10) 
      private 'primary' => boolean true 
      private 'type' => string 'wallet' (length=6) 
      private 'currency' => string 'BTC' (length=3) 
      private 'balance' => 
      object(Coinbase\Wallet\Value\Money)[43] 
       ... 
      private 'nativeBalance' => 
      object(Coinbase\Wallet\Value\Money)[47] 
       ... 
      private 'createdAt' => 
      object(DateTime)[48] 
       ... 
      private 'updatedAt' => 
      object(DateTime)[49] 
       ... 
      private 'id' (Coinbase\Wallet\Resource\Resource) => string 'b12d3892-1228-5da1-a779-c5104bcbd749' (length=36) 
      private 'resource' (Coinbase\Wallet\Resource\Resource) => string 'account' (length=7) 
      private 'resourcePath' (Coinbase\Wallet\Resource\Resource) => string '/v2/accounts/b12d3892-1228-5da1-a779-c5104bcbd749' (length=49) 
      private 'rawData' (Coinbase\Wallet\Resource\Resource) => 
      array (size=11) 
       ... 

助けてください。

アヌープ

+0

なぜそれを配列に変換していますか? – naomik

+0

@naomik:jsonオブジェクトと表示としてjqueryコードへの応答を渡したいと思います。 –

+0

私は['Account.php'](https://github.com/coinbase/coinbase-php/blob/master/src/Resource/Account.php)と[' Resource.php'](https ://github.com/coinbase/coinbase-php/blob/master/src/Resource/Resource.php)。私はPHPオブジェクトをJSONに変換することができません。少なくとも 'Account.php'では、あなたが必要とするデータを得るのはかなり簡単です。 – naomik

答えて

-1

は次のように変換しよう:

$アカウント= json_decode(json_encode(の$ this - >クライアント - > getAccounts())、真の);

UPDATE

$accounts = $this->client->getAccounts(); 
$resources = $accounts->all(); 

foreach($resources as $index=>$details) { 

    $accArr = []; 

    foreach($details as $key=>$detail) { 

    $method = 'get'.ucfirst($key).'()'; 
    $accArr[$key] = $detail->{$method}; 
    $accountsContainer[] = $accArr; 

    } 

} 
var_dump($accountsContainer); 
+1

私はオペアンプではありませんが、公開属性だけを返しますか? [テスト参照](https://3v4l.org/DoO8a) – FirstOne

+0

@Yolo:空の配列を与える! –

0

は、次のコードで修正することができました。

$accountResponse = $this->client->getAccounts(); 
    foreach ($accountResponse->all() as &$account) { 
    $responseData[] = $account->getRawData(); 
} 
関連する問題