2016-11-08 40 views
2

的API是:PHP - 不能得到价值与json_decode

{"status":1,"data":[{"address":"0x5c48aebbbbdcf44f5f181edbb5b20a68210eacfe","balance":6000000000000000000,"nonce":null,"code":"0x","name":null,"storage":null,"firstSeen":null}]} 

我试图摆脱平衡(6000000000000000000)的值。我还需要在此期间1000000000000000000来划分这个值...

我想:

$obj = json_decode($json,true); 
$address = $obj['address']; 

$json = file_get_html('https://etherchain.org/api/account/'.$address); 
$obj = json_decode($json); 
$v = (get_object_vars($obj->data)); 
$balance = $v['balance']; 
$_SESSION['balance'] = $balance; 

它不工作。

相同的代码工作与下面的API:

{"status":"success","data":{"address":"LU4P8fVNj8xv2dwRc7fdXmpaW2xuCSJvUK","is_unknown":false,"balance":0,"balance_multisig":0,"totalreceived":0.0340576,"nb_txs":11,"first_tx":{"time_utc":"2015-08-30T09:51:05Z","tx":"10f4b55d0bead8d3d84fe27433db20b63368d65bc043c651d59dbe1342d14098","block_nb":"842330","value":0.00704229,"confirmations":251241},"last_tx":{"time_utc":"2016-02-02T16:09:23Z","tx":"c666d3acf6f57fd86a2ccc9537ee022167da408f26193e4abbd7b8148fc518b3","block_nb":"932771","value":-0.01250452,"confirmations":160800},"is_valid":true},"code":200,"message":""} 

我在做什么错?

+0

的数据位于'$ OBJ [ '数据'] [ '地址']'也许下一次做调试的一点点先用'的var_dump()' – Xorifelse

+0

@Xorifelse它应该是 '$ v =(get_object_vars($ obj-> data-> address));' '$ balance = $ v ['balance'];' 我仍然无法让它工作。对不起,这里有个新手。 –

+0

构造的URL:https://etherchain.org/api/account/LU4P8fVNj8xv2dwRc7fdXmpaW2xuCSJvUK,以空集返回数据:{“status”:1,“data”:[]},余额不在其中和PHP,并会导致PHP吠叫警告,平衡不是对象的一部分(检查警告级别和PHP日志),除非该网址的行为不同,如果登录在您的机器上 – danchik

回答

1

它,因为你错过了地址位于第一data数组中的JSON字符串中,并在第二JSON字符串,没有数组的数组data内部存在。

$obj = json_decode($json,true); 
$address = $obj['data'][0]['address']; 
$json = file_get_contents('https://etherchain.org/api/account/'.$address); 
$obj = json_decode($json); 
echo $obj->data[0]->balance; 
+0

我想: '$ OBJ = json_decode($ json的,真正的);' \t \t'$地址= $ obj ['data'] [0] ['address'];' '$ json = file_get_html('https://etherchain.org/api/account/'.$address); $ obj = json_decode($ json); $ v =(get_object_vars($ obj-> data [0] - > balance));' '$ balance = $ v ['balance']; $ _SESSION ['balance'] = $ balance;' 而且还没有。 –

+0

我真的不明白你想用'get_object_vars()'做什么,为什么不直接将它转换为数组?无论如何,更新了代码。 – Xorifelse

+0

谢谢!它使用$ obj-> data [0] –