PHP从json返回数字名称
Posted
技术标签:
【中文标题】PHP从json返回数字名称【英文标题】:PHP return numeric name from json 【发布时间】:2018-06-30 11:59:46 【问题描述】:我有代码:
$json = file_get_contents('https://api.coinmarketcap.com/v1/ticker/?limit=0');
$coins = json_decode($json, true);
foreach($coins as $coin)
echo $coin->24h_volume_usd;
脚本返回错误:
解析错误:语法错误,意外 '24' (T_LNUMBER),期待 标识符 (T_STRING) 或变量 (T_VARIABLE) 或 '' 或 '$'...
是的,我知道我不能将名称 JSON 与数字一起使用,但我不能将 24h_volume_usd
更改为例如:h_volume_usd
,因为这是从其他页面 (ink) 下载的值。
【问题讨论】:
把对象改成数组?也许这会奏效?您可以使用json_decode()
执行此操作,但您的代码中缺少该部分。
@KIKOSoftware 不工作,当我更改为:echo $coin['24h_volume_usd'];
我有错误:不能使用 stdClass 类型的对象作为数组
您当然需要将对象更改为数组。比如像 Aniket Sahrawat 说的那样。
它的版本是 php 7.2。我在答案中添加了代码。
【参考方案1】:
当对象键以数字开头时,您需要将其包装为大括号中的字符串文字,如下所示:
$coin->"24h_volume_usd";
【讨论】:
【参考方案2】:您可以通过将第二个参数设置为 true 来将 json-string 解码为关联数组。
$coins = json_decode($jsonString, true);
foreach($coins as $coin)
echo $coin['24h_volume_usd'];
【讨论】:
以上是关于PHP从json返回数字名称的主要内容,如果未能解决你的问题,请参考以下文章