我正在尝试使用PHP对这个JSON数据进行顶级解码,但它没有返回任何内容:
{ "message" : "",
"result" : [ { "Ask" : 0.040400209999999999,
"BaseVolume" : 456.53976963999997,
"Bid" : 0.040200010000000001,
"Created" : "2014-12-19T03:48:49.13",
"High" : 0.044610999999999998,
"Last" : 0.040400199999999997,
"Low" : 0.037999999999999999,
"MarketName" : "BTC-XPY",
"OpenBuyOrders" : 194,
"OpenSellOrders" : 520,
"PrevDay" : 0.042073039999999999,
"TimeStamp" : "2014-12-30T02:45:32.983",
"Volume" : 11072.491576779999
} ],
"success" : true
}
这是我到目前为止所做的:
$pricejson = file_get_contents('https://bittrex.com/api/v1.1/public/getmarketsummary?market=btc-xpy');
$price = json_decode($pricejson, true);
echo $price->result->Last;
当我打开包含此代码的php文件时,什么都没有。如果我使用echo $pricejson
,我会打印出整个内容,所以我肯定有数据。
有什么问题?
答案 0 :(得分:3)
json_decode的第二个参数强制将所有对象解析为关联数组,因此您需要使用数组表示法访问它。另外result
总是一个数组,所以你需要循环它或通过索引访问它:
$price = json_decode($pricejson, true);
// print the first price
echo $price['result'][0]['Last'];
// print all prices:
foreach ($price['result'] as $data) {
echo $data['Last'];
}
或者如果你想混合使用对象/数组:
$price = json_decode($pricejson);
echo $price->result[0]->Last;
// print all prices:
foreach ($price->result as $data) {
echo $data->Last;
}
除此之外,还有一个json解析错误。您可能还需要确保正确解析您获得的JSON。