php - 将php数组转换为json(coinbase)
问题描述
我正在寻找一种从类属性中的 PHP 数组中读取数据的解决方案。
要求:
$accounts = $client->getAccounts();
这是结果数组:
Coinbase\Wallet\Resource\ResourceCollection Object
(
[previousUri:Coinbase\Wallet\Resource\ResourceCollection:private] =>
[nextUri:Coinbase\Wallet\Resource\ResourceCollection:private] =>
[resources:Coinbase\Wallet\Resource\ResourceCollection:private] => Array
(
[0] => Coinbase\Wallet\Resource\Account Object
(
[name:Coinbase\Wallet\Resource\Account:private] => BTC Wallet
[primary:Coinbase\Wallet\Resource\Account:private] => 1
[type:Coinbase\Wallet\Resource\Account:private] => wallet
[currency:Coinbase\Wallet\Resource\Account:private] => BTC
[balance:Coinbase\Wallet\Resource\Account:private] => Coinbase\Wallet\Value\Money Object
(
[amount:Coinbase\Wallet\Value\Money:private] => 0.00001
[currency:Coinbase\Wallet\Value\Money:private] => BTC
)
[nativeBalance:Coinbase\Wallet\Resource\Account:private] => Coinbase\Wallet\Value\Money Object
(
[amount:Coinbase\Wallet\Value\Money:private] => 0.01
[currency:Coinbase\Wallet\Value\Money:private] => CHF
)
[createdAt:Coinbase\Wallet\Resource\Account:private] => DateTime Object
(
[date] => 2017-11-04 01:35:13.000000
[timezone_type] => 2
[timezone] => Z
)
[updatedAt:Coinbase\Wallet\Resource\Account:private] => DateTime Object
(
[date] => 2017-11-04 14:24:11.000000
[timezone_type] => 2
[timezone] => Z
)
[id:Coinbase\Wallet\Resource\Resource:private] => XXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX
[resource:Coinbase\Wallet\Resource\Resource:private] => account
[resourcePath:Coinbase\Wallet\Resource\Resource:private] => /v2/accounts/XXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX
[rawData:Coinbase\Wallet\Resource\Resource:private] => Array
(
[id] => XXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX
[name] => BTC Wallet
[primary] => 1
[type] => wallet
[currency] => BTC
[balance] => Array
(
[amount] => 0.001
[currency] => BTC
)
[created_at] => 2017-11-04T01:35:13Z
[updated_at] => 2017-11-04T14:24:11Z
[resource] => account
[resource_path] => /v2/accounts/XXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX
[native_balance] => Array
(
[amount] => 0.01
[currency] => CHF
)
)
)
)
)
现在我想读取$accounts['rawData']['id']
值为 XXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX 我尝试将这些响应转换为 JSON 数组,如下所示:
$aaax = json_encode($accounts);
$bbbx = json_decode($aaax, true);
但它不起作用。上
print_r($bbbx)
我只收到一个
Array
(
)
你知道我如何从输出数组中读取/获取数据吗?
解决方案
问题是您的类的属性都具有private
可见性。这意味着您在类之外的代码无法读取或修改这些属性。
您需要修改您的类以使您的代码可以访问这些属性,或者至少告诉 PHP 在您运行时包含私有属性json_encode()
。假设您不能这样做,因为这是一个库,而不是您编写的代码,您需要将该类包装在一个实现JsonSerializable
.
推荐阅读
- r - 提取 R 中 data.frame 的名称作为字符,而不创建所有 data.frames 的列表,然后从该列表中调用
- r - 闪亮的反应值更新顺序
- spring - 使用spring hibernate在代码中不重复的想法
- android - 在 facebook android 应用程序上单击我的网站链接给出 net::ERR_NAME_NOT_RESOLVED
- r - 将 content_transformer 与 udpipe_annotate 一起使用
- php - 将生成的二维码图像保存到路径中
- python - 可以隐式检查“零”或“空”的变量的类型
- hadoop - 安装hdp-3.0时找不到与redhat6匹配的操作系统错误
- gmail - Sendmail 和反向 ipv6
- php - 如何在 Yii 中将 URL 的语言更改为单一语言?