我有一个JSON文件,我试图从PHP中提取值

时间:2017-10-18 05:29:29

标签: php json

我正在尝试从PHP中的JSON文件中提取每个查看器名称。

我已经广泛地浏览了互联网,找到了一个可以为我提供我想要的结果的工作实例。

我真的很难找到一个符合我在互联网上的需求的例子来帮助我完成一件非常简单的事情。

我有一个JSON文件在Internet上吐出几个值,我希望从一个特定的部分中提取每一行。

看到一个有效的例子可能会帮助我理解我在做什么。

我正在使用的JSON文件是: https://tmi.twitch.tv/group/user/dansgaming/chatters

我正在尝试从此文件的“查看者”部分中提取每一行。

我使用以下PHP捕获了数据:

$testviewers = json_decode(@file_get_contents('https://tmi.twitch.tv/group/user/' . $streamName . '/chatters'), true);
var_dump($testviewers['chatters']['viewers']);

事实证明这对我没有预期的结果。

我只是希望通过分页符来回显查看器部分中的每一行。

我做错了什么?我尝试了大约200种不同的方法,不得不承认这是我第一次使用JSON。

我试图在互联网上寻找答案,并找到了许多教程,但没有一个对我有任何意义,我知道看到如何完成结果将有助于我确切了解应该发生什么。

在一个理想的世界中,它会简单地将每个“观察者”输出到我可以使用的单独行上。如果我可以回应每一个,然后连接分页符或单词“viewer:”,那么这将是一个巨大的帮助,我将能够更进一步,并可能在这个过程中学到很多东西。

3 个答案:

答案 0 :(得分:0)

原来这个问题是一个没有显示的PHP错误。由于JSON文件的大小和我的机器的下限,代码超时了。

答案 1 :(得分:0)

这是我从json回声的方式

$json = json_decode($response, true);
foreach($json['chatters'] as $key => $value)
{
  if(!empty($value['viewers']))
  {
   $VIEWER = $value['viewers'];
   $VIEWER = addslashes($VIEWER );
   $VIEWER = trim(preg_replace('/\s\s+/', ' ', $VIEWER ));
  }
  else
  {
    $VIEWER = '';
  }
   echo 'VIEWER = '.$VIEWER .'</br>';
}

只要确保foreach是真的,也许可以提供帮助。

答案 2 :(得分:0)

我认为这就是你想要的......

$array = json_decode($your_json,true); 
foreach($array['chatters']['viewers'] as $r) echo $r.'<br>';