这是第一次使用Stackoverflow,所以如果我做错了问这个问题,请告诉我! :)
让我们回答这个问题。
我正在使用php和json开发一个公共API。 这是我第一次使用json和php,所以我对它有些新意。
我得到的问题是从我的API获取值(只是想在我让其他人使用它之前测试它)
我对编码没有任何问题,我通过多个验证器和HurlIt运行它,它运行正常。
我的猜测是我的检索代码存在问题。
这是来自API的回复
[{"recordID":"1","uuid":"5c298318-905e-3759-8762-150c7c77ef17","username":"fgh78","firstJoin":"2017-04-02","lastJoin":"2017-04-14","joinCount":"81","linesWritten":"3545","currencyValue":"0","rank":"default"}]
这是我用来检索特定值的代码。
$url = 'http://localhost/api.zunarmc.se/api/v1/stats/api.php?apikey=828137163&player=fgh78';
$json = file_get_contents($url);
$array = json_decode($json, true);
echo $array->joinCount;
使用此代码时,我得到的响应是什么,什么都没有。
我想知道Stackoverflow上的任何一个好人都能告诉我我的代码有什么问题或给我任何提示。
谢谢! 〜〜
答案 0 :(得分:0)
这里你应该注意json_encode的第二个参数。
阵列
$array = json_decode($json, true);
echo $array['joinCount'];
对象
$array = json_decode($json);
echo $array->joinCount;
答案 1 :(得分:0)
传递true
作为第二个参数会导致返回值为关联数组,而不是对象。所以你没有正确访问数据。
echo $array["joinCount"]
答案 2 :(得分:0)
我现在想通了,似乎我不得不使用没有BOM的UTF-8,否则会通过添加一个奇怪的BOM标记来混淆解码器。
感谢您的回答,从未想过我会如此迅速得到回复!