从url获取JSON值

时间:2017-04-14 13:52:06

标签: php json

这是第一次使用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上的任何一个好人都能告诉我我的代码有什么问题或给我任何提示。

谢谢! 〜〜

3 个答案:

答案 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标记来混淆解码器。

感谢您的回答,从未想过我会如此迅速得到回复!