【发布时间】:2017-03-28 18:28:16
【问题描述】:
好吧,我在过去的 24 小时里都撞到了头,在测试和阅读 SO 之后无法弄清楚这一点。我有一个需要解析的 JSON 文件,由于某种原因,我无法获得正确的代码组合来回显除“数组”或“尝试获取非对象的属性”或“为 foreach 提供的参数无效”之外的任何内容( )”。这是我试图迭代的完整 JSON。我需要打印出每个“项目”的名称、每个项目中的“数据集”以及每个“数据集”的“权限”。我正在自己构建这个 JSON,所以我可以在必要时更改格式。
$data = json_decode($json, true);
在下面输出 JSON:
[
[
{
"projects":[
{
"project":"test-project-1",
"datasets":[
{
"dataset":"testing1",
"permissions":[
{
"role":"READER",
"google_group":"testing1@test.com"
}
]
},
{
"dataset":"testing2",
"permissions":[
{
"role":"OWNER",
"google_group":"testing2@test.com"
}
]
},
{
"dataset":"testing3",
"permissions":[
{
"role":"READER",
"google_group":"testing3@test.com"
}
]
},
{
"dataset":"testing4",
"permissions":[
{
"role":"WRITER",
"google_group":"testing4@test.com"
}
]
}
]
},
{
"project":"test-project-2",
"datasets":[
{
"dataset":"testing1",
"permissions":[
{
"role":"READER",
"google_group":"testing1@test.com"
}
]
},
{
"dataset":"testing2",
"permissions":[
{
"role":"READER",
"google_group":"testing2@test.com"
}
]
},
{
"dataset":"testing3",
"permissions":[
{
"role":"READER",
"google_group":"testing3@test.com"
}
]
},
{
"dataset":"testing4",
"permissions":[
{
"role":"READER",
"google_group":"testing4@test.com"
}
]
}
]
}
]
}
]
]
我尝试过类似的方法:
foreach($data->projects as $output)
{
echo $output->project . "\n";
foreach($output->datasets as $datasets)
{
echo $output->dataset . "\n";
}
}
感谢您的帮助!
编辑:解析上述 JSON 的工作代码:
$projects = $json['projects'];
foreach ($projects as $project) {
echo $project['project'] . "<br>";
foreach ($json['projects'][0]['datasets'] as $datasets){
echo $datasets['dataset'] . "<br>";
foreach ($json['projects'][0]['datasets'][0]['permissions'] as $permissions){
echo $permissions['role'] . "<br>";
echo $permissions['google_group'] . "<br>";
}
}
}
【问题讨论】:
-
var_dump($output->dataset);
标签: php arrays json foreach echo