【问题标题】:Json decode isnt workingJson解码不起作用
【发布时间】:2017-01-18 07:00:57
【问题描述】:

这是出错的部分:

$inv = 'http://steamapi.csgodirect.com/getInventory?steamid=76561198076372985';
@$inv = file_get_contents($inv);
$inv = json_decode($inv, true);
if($inv['success'] != 1) {
        $privateinventory = 1;
}
 else{
       $privateinventory = 0;

       }

echo $privateinventory;

我总是得到 1,但它应该是 0。 JSON - 代码在网站上可用,但由于某种原因他说它没有成功。

【问题讨论】:

  • 给定的json中没有成功键..
  • 您应该始终检查错误日志,并在本地环境中开发时打开display_errors。然后你会看到@MASIDDIQUI 是正确的...... json 中没有success-field。
  • 但它正在为他服务器上的另一个人工作..
  • 好吧,我们只能指出事实,在这个特定的 JSON 输出中没有成功的关键。我怀疑您的 API 查询不正确。浏览到网址http://steamapi.csgodirect.com/getInventory?steamid=76561198076372985,然后使用ctrl-f 并尝试查找success,亲自查看。
  • 也许其他人用 json 传递“成功”键。

标签: php html json steam


【解决方案1】:

给定的 json 文件中没有成功键,但是如果您需要检查,可以使用 json_decode($inv) != null 检查 json 是否有效,现在从您的问题来看,我认为这可能会对您有所帮助。

error_reporting(E_ALL);
$inv = 'http://steamapi.csgodirect.com/getInventory?steamid=76561198076372985';
@$inv = file_get_contents($inv);
//var_dump($inv);

//var_dump(json_decode($inv, true));

if (json_decode($inv) != null) {
    $privateinventory = 0;
} else {
    $privateinventory = 1;
}

echo $privateinventory;

如果这不符合您的要求,请尝试描述更多。

【讨论】:

  • 您应该先在评论中询问这是否足够,然后再在答案中假设它。
  • 不知道你的意思是什么,我只是指出最好在写答案之前在 cmets 中询问更多信息,因为对于 OP 来说,答案比假设更好.顺便说一句,我不是反对者……
  • 感谢您的帮助,但我是新来的,您对我的回答投了反对票,这有点奇怪。希望你能理解
  • 就像我说的,我不是反对者。不过,我确实给了你一个为什么有人会这样做的理由。
猜你喜欢
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
相关资源
最近更新 更多