我有一个外部JSON,希望在我的网站上进行样式化



我一直在尝试学习如何将远程json数据集转换为html页面。

我已经获取了完整的导出json到这个pastebin中:https://pastebin.com/ZWUhZKPD

我这样做的原因是为了不向json公开任何访问令牌。

据我所知,每套都是这样的:

{
"date": "2021-01-26",
"venue": "Mayplace Road East",
"competition": {
"name": "Isthmian League - South East Division",
"id": 40
},
"id": 367714,
"time": "19:45",
"home-team": {
"score": 0,
"name": "Phoenix Sports",
"id": 1549
},
"away-team": {
"score": 0,
"name": "Hastings United",
"id": 260
},
"attendance": 0,
"status": {
"short": "7.45pm",
"full": "Kick off 7.45pm"
}
},

这是我想要的HTML输出:

<h6>{date here}, {status->full here}</h6>
<div class="latest_results_col"><img src="{home-team->name here}.png"><span>{home-team->name here}</span></div>
<div class="latest_results_col goalscore2">vs</div>
<div class="latest_results_col"><img src="{away-team->name here}.png" /><span>{away-team->name here}</span></div>
<div class="clear">
<span>Location: {venue here}</span>
</div>
</div>

但不管我怎么尝试,似乎都无济于事。我尝试了foreach命令,但出现以下错误:PHP Fatal error: Uncaught Error: Object of class stdClass could not be converted to string

我不希望有人写完整的代码,我没有资金付钱给别人做,这也是我真正想学习如何做的事情,JSON对我来说是一项新的事业,远离数据库等等。

我访问过的每个页面都解释了如何使用本地json来实现这一点,但由于某种原因,我的输出并没有反映出它们所显示的内容。

我真的很感谢给我的任何帮助,如果你有任何网页链接可以帮助我理解,请发布它们。

编辑:我被要求提供代码,这是我尝试过的。

<?php
'the variable i set the json to is $json'
$json_decoded = json_decode($json, true);
echo $json_decoded[0]['home-team'];
?>

那只是我想把主队的名字显示出来。

我认为我需要学习和理解数组以及如何从中获取数据,因为我知道我做得不对,这就是我来到这里的原因,因为我很难理解。

编辑2:好吧,我想我知道我需要学习什么,这听起来很爱尔兰,但看看数组,里面似乎有多个数组。

因此,我需要做的是从主数组中获取数据,在这种情况下,主数组在$json中,然后有一个名为"matches"的子数组,然后在其中有每个集合所在的位置,例如,我需要访问$json->匹配->主队[名字];但我确信这是访问数组中数据的错误方式。

因此,在上面的例子中,问题变成了我如何访问主队名称";Phoenix Sports"那么它的输出呢?

json给出一个数组

[
fixtures-results=>
[
team =>[some data],
matches =>[
0 =>[ match data ],
1 =>[ match data ],
2 =>[ match data ],
...
41 => [match data ]
]
]

您可以使用echo '<pre>'.print_r($json_decoded,true);将解码阵列输出到屏幕

因此显示匹配数据可以通过以下方式完成:

foreach ( $json_decoded['fixtures-results']['matches'] as $match){ 
display_match($match);
}
function display_match($match){
echo '<div>';
echo '<h6>'.$match['date'].','.$match['status']['full'].'</h6>';
echo '<div class="latest_results_col">
<img src="'.$match['home-team']['name'].'.png">
<span>'.$match['home-team']['name'].'</span>
</div>';
etc...
echo '</div>';
}

最新更新