使用curl与json_decode解析数据后,无法正确定位数组元素求助
问题分析与解决方案
嘿,我一下子就找到你卡壳的点啦!
你用json_decode($execResult)解析返回的JSON时,默认情况下这个函数会返回一个stdClass对象,而不是你以为的关联数组。这就导致你用数组下标$obj['result']['Bid']这种方式访问属性时会出错——对象的属性得用箭头->语法来访问才行。
另外你之前试的$obj['Bid']也不对,因为Bid、Ask、Last这些字段都嵌套在result这个子结构里,根层级只有success、message、result三个键哦。
给你两个解决办法,选哪个都行:
办法1:用对象属性访问语法修改代码
直接调整输出部分的代码,用->访问对象的嵌套属性:
echo 'Bid: '.$obj->result->Bid.'<br/>'; echo 'Ask: '.$obj->result->Ask.'<br/>'; echo 'Last: '.$obj->result->Last.'<br/>';
办法2:让json_decode返回关联数组
如果你更习惯用数组的方式访问,可以给json_decode加上第二个参数true,强制它把JSON解析成关联数组,这样你最初写的数组访问代码就能正常工作了:
// 修改解析行,添加第二个参数true $obj = json_decode($execResult, true); // 现在用数组下标访问就没问题了 echo 'Bid: '.$obj['result']['Bid'].'<br/>'; echo 'Ask: '.$obj['result']['Ask'].'<br/>'; echo 'Last: '.$obj['result']['Last'].'<br/>';
内容的提问来源于stack exchange,提问作者rainerbrunotte
相关产品推荐
相关产品推荐

