用php数组重建Json响应
问题描述:
我从JSON
的某个API获得一些数据。一个典型的响应看起来像:用php数组重建Json响应
[
{
"id": "1918443",
"comp_id": "1322",
"formatted_date": "20.04.2016",
"season": "2015/2016",
"week": "32",
"venue": "De Grolsch Veste (Enschede)",
"venue_id": "1067",
"venue_city": "Enschede",
"status": "FT",
"timer": "",
"time": "18:45",
"localteam_id": "13460",
"localteam_name": "Twente",
"localteam_score": "2",
"visitorteam_id": "13253",
"visitorteam_name": "Excelsior",
"visitorteam_score": "0",
"ht_score": "[0-0]",
"ft_score": "[2-0]",
"et_score": null,
"penalty_local": null,
"penalty_visitor": null,
etc ...
此响应具有多个游戏(上述响应只有一个游戏)。 我有一个iOS
应用程序与其他API(我不想更改应用程序代码)一起工作。旧的应用程序有一个这样的数组中的所有游戏:
"matches": [
{
"id": "1918443",
"comp_id": "1322",
"formatted_date": "20.04.2016",
"season": "2015/2016",
"week": "32",
"venue": "De Grolsch Veste (Enschede)",
"venue_id": "1067",
"venue_city": "Enschede",
"status": "FT",
"timer": "",
"time": "18:45",
"localteam_id": "13460",
"localteam_name": "Twente",
"localteam_score": "2",
"visitorteam_id": "13253",
"visitorteam_name": "Excelsior",
"visitorteam_score": "0",
"ht_score": "[0-0]",
"ft_score": "[2-0]",
"et_score": null,
"penalty_local": null,
"penalty_visitor": null,
所以我想要做的是把一个数组中的第一个JSON
响应“匹配”我怎么能做到这一点与foreach
?
答
你将需要解码JSON响应,并把它与“匹配”像这样键入一个新的数组:
$json = //... your json response here
$games = ['matches' => json_decode($json, true)];
foreach ($games as $game) {
// ...
}
答
不要以为你会需要一个foreach
这里,但我可能不明白你完全。你首先要做的是将json解码为使用json_decode
的PHP数组,然后创建一个新数组并将第一个解码数组放入匹配。例如:
$gameData = json_decode(/* your json string from above */);
$games = [
"matches" => $gameData
];
echo json_encode($matches);
如果你现在到itterate这个数组,你只需把$games["matches"]
到的foreach。