我正在研究关于加密货币(比特币等)的金融研究生课程的研究项目。我试图解析由cryptsy(交换加密货币的市场)api(https://www.cryptsy.com/pages/privateapi)产生的JSON响应中的单个对象。我正在使用cryptsy提供的API示例代码,可以在上面提供的URL中找到。我想抓住我的帐户余额为初学者。在这里你的帮助将非常感激。
我得到的回答如下:
Array ( [success] => 1 [return] => Array ( [balances_available] => Array ( [42] => 0.00000000 [AGS] => 0.00000000 [ALN] => 0.00000000 [ALF] => 0.00000000 [AMC] => 0.00000000My code I am trying to write not working so well:
$result = api_query("getinfo"); $json = file_get_contents($result); $json2 = json_decode($json, true); foreach($json2->attachments->balances_available AS $attach) { file_put_contents('test.txt', $attach, FILE_APPEND);
}
echo "<pre>".print_r($json2, true)."</pre>";
Error Message:
Warning: file_get_contents() expects parameter 1 to be a valid path, array given in /Users/Aditya/Desktop/PHP-1.php on line 45
Warning: Invalid argument supplied for foreach() in /Users/Aditya/Desktop/PHP-1.php on line 47
非常感谢任何帮助,我遍布每个论坛,而且我不是计算机科学家。再次感谢您的时间和耐心。
答案 0 :(得分:1)
示例api_query
方法已经返回一个数组:
$array = api_query("getinfo");
因此,您需要在$result
变量上同时应用file_get_contents
或json_decode
。
此时它是一个普通数组,所以只有[]
访问,没有->
属性遍历。无论如何,我不确定它是否包含在["attachments"]
中。有关实际结构,请参阅var_dump($array)
。
你可以循环它:
foreach ($array["attachments"]["balances_available"] as $key => $value) {
print " $key == $value \n<br>";
}
如果你想将它存储到一个文件中(你可能希望详细说明格式),那么同样附加它:
foreach (/* as seen above*/) {
file_put_contents(
'test.txt',
" $key has $value balance \n",
FILE_APPEND
);
}