显示JSON文件的一部分

时间:2016-05-16 16:38:10

标签: php json

这是我的JSON文件:

{"message":"yes","info":{"ID":1,"Items":[{"Name":" Jim"},{"Name":" Bob"}]}}

使用下面的代码,我正在尝试读取JSON文件并回显Name (应该是Jim和Bob)的每个值,但是我正在接受错误:

  

语法错误,意外'as'(T_AS),期待';'

<?php
$homepage = 'jsonfile';
$data = file_get_contents($homepage);
$users = $data['Items'];
for($users as $user) {
echo $user['Name'];
}
?>

2 个答案:

答案 0 :(得分:2)

在线查看https://3v4l.org/qTAXb

使用json_decode解码json字符串,并使用foreach循环遍历数组。将所有名称放入$arr数组,最后使用implode将其删除。

$json = '{"message":"yes","info":{"ID":1, "Items":[{"Name":" Jim"},{"Name":" Bob"}]}}';
$result = json_decode ($json);

$arr = array();
foreach($result->info->Items as $value){
    $arr[] = $value->Name;
}
echo "<div>".implode("</div>, <div>", $arr)."</div>"; //Jim, Bob

答案 1 :(得分:1)

首先,正如评论中提到的那样,你必须将json解码为数组。

其次,您尝试使用for()see docs here)循环而不是foreach()see docs here)。

您的代码应该是这样的:

$data = json_decode('{"message":"yes","info":{"ID":1,"Items":[{"Name":" Jim"},{"Name":" Bob"}]}}', true);

$users = $data['info']['Items'];
foreach($users as $user) {
   echo $user['Name'];
}

请参阅working demo here