使用PHP数组/对象混淆解析JSON

时间:2015-12-15 06:34:54

标签: php arrays json object

我正在尝试解析this JSON data to print on a fanpage I am working on。 如果查看该JSON链接,您将看到结构为[{key:value,key:value,key:value}]。我最近学会了如何使用稍微不同的结构来解析JSON,例如this JSON file,其中数据结构为{"identifier":[{key:value,value,value,value,value}{key:value,value...}]}

这是我正在尝试的代码:(我已经尝试了大约10种变体,同时也用于逗号的爆炸)

<?php
$json = file_get_contents('http://live.nhl.com/GameData/SeasonSchedule-20152016.json');

$json = json_decode($json, TRUE);

foreach($json as $d){
   $estTime = $d['est'];
     echo $estTime;
?>

正如我所说,通过这样做,我在JSON的其他结构上取得了一些成功:

$json = file_get_contents('http://nhlwc.cdnak.neulion.com/fs1/nhl/league/playerstatsline/20152016/2/SJS/iphone/playerstatsline.json');

$json = json_decode($json, TRUE);

$skaterData = $json['skaterData'];
$goalieData = $json['goalieData'];

foreach($skaterData as $d){
    $stats = explode(',', $d['data']);
    $number = $stats[0];
        $position = $stats[1];
        $name = $stats[2];
        $gp = $stats[3];
        $goals = $stats[4];
        $assists = $stats[5];
        $points = $stats[6];
        $plsmns = $stats[7];
        $pim = $stats[8];
        $shots = $stats[9];
        $toi = $stats[10];
        $pp = $stats[11];
        $sh = $stats[12];
        $gwg = $stats[13];
        $ot = $stats[14];

修改:JSON data successfully parsed

1 个答案:

答案 0 :(得分:2)

您的代码唯一的问题是您错过了foreach的结束花括号。

我强烈建议您注意所收到的错误消息,通常它们会让您轻松解决问题。如果您的服务器没有在浏览器中显示它们(这在现场网站上通常是件好事),您可以在服务器上的某个错误日志中找到它们。

此外,您可能希望使用带有linting(what is linting)的正确编辑器,这可能会立即以这种或那种方式通知您这种遗漏。一个这样的免费工具是Atom