我已经阅读了很多关于json_decode的问题,尝试了各种不同的东西,我不能这样做。
这是bittrex api
$apikey='4058';
$apisecret='50860';
$nonce=time();
$uri='https://bittrex.com/api/v1.1/public/getticker? apikey='.$apikey.'&nonce='.$nonce.'&market=BTC-LTC';
$sign=hash_hmac('sha512',$uri,$apisecret);
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
$execResult = curl_exec($ch);
$json = json_decode($execResult,true);
我得到一个输出,现在我只想要“最后”值
{"success":true,"message":"","result":{"Bid":0.00002130,"Ask":0.00003341,"Last":0.00002121}}
我为每个
尝试过foreach($json->result as $market) {
$lastPrice = $market->Last;
//this was to see if it was an echo problems, tried storing the last price in the db... I get null
$collectionGamerActions->update(array('gamer'=>$gamer),
array('$set'=>array('lastPrice'=>$lastPrice,'reached'=>1)));
//print "last price is $lastPrice";
}
我试过
$lastPrice = $json->result->Last;
和各种
$lastPrice = $json[0]['result']['last']
我放弃了php并尝试了javascript,首先对他做出反应,然后解析它
var obj = JSON.stringify(response);
var obj =JSON.parse(obj);
console.log("last is " + obj.result.Last + " obj is " + obj);
没有任何作用......我可以得到我正在做错的方向。
尝试了以下一些建议
var obj = JSON.stringify(response);
var json = JSON.parse(response);
console.log(json.result.Last);
在php端,响应在这里生成
$execResult = curl_exec($ch);
$json = json_decode($execResult);
echo json_decode($json, true);
导致javascript错误 SyntaxError:意外的数字var json = JSON.parse(response);
使用php建议
$json = json_decode($execResult);
$json = json_decode($json, true);
var_dump($json['result']['Last']);
结果为NULL
答案 0 :(得分:1)
使用时(注意json_decode
中的第二个参数):
$json = json_decode($execResult,true);
您将拥有一个关联数组,因此您的值将位于:
$json['result']['last']
请注意,$json->result->Last
如果您使用json_decode()
而没有第二个参数(默认值false
),则会有效。
答案 1 :(得分:0)
我可能误解了你的问题,但是......假设PHP给你上面粘贴的字符串,那么你可以使用JSON.parse
(不需要stringify)并从结果对象中获取结果。
var string = '{"success":true,"message":"","result":{"Bid":0.00002130,"Ask":0.00003341,"Last":0.00002121}}';
var json = JSON.parse(string);
console.log(json.result.Last); // 0.00002121
答案 2 :(得分:0)
数组表示法(json_decode()
的第二个参数是true
):
$string = '{"success":true,"message":"","result": {"Bid":0.00002130,"Ask":0.00003341,"Last":0.00002121}}';
$json = json_decode($string, true);
var_dump($json['result']['Last']);
对象表示法(json_decode()
的第二个参数是false
):
$string = '{"success":true,"message":"","result":{"Bid":0.00002130,"Ask":0.00003341,"Last":0.00002121}}';
$json = json_decode($string);
var_dump($json->result->Last);