[英]Iterate over JSON with PHP
我無法弄清楚如何從下面的JSON獲取以下鍵/值:
我需要在for循環中打印出:
“項目”,即“ test-project-1”
“數據集”,即“ dataset1”
“權限”,即“角色:作者,組:test1@test.com”
{
"projects":{
"test-project-1":{
"datasets":{
"dataset1":{
"permissions":{
"role":"WRITER",
"group":"test1@test.com"
}
},
"dataset2":{
"permissions":{
"role":"READER",
"group":"test2@test.com"
}
},
"dataset3":{
"permissions":{
"role":"READER",
"group":"test3@test.com"
}
},
"dataset4":{
"permissions":{
"role":"READER",
"group":"test4@test.com"
}
},
"dataset5":{
"permissions":{
"role":"READER",
"group":"test5@test.com"
}
}
}
},
"test-project-2":{
"datasets":{
"dataset1":{
"permissions":{
"role":"WRITER",
"group":"test1@test.com"
}
},
"dataset2":{
"permissions":{
"role":"READER",
"group":"test2@test.com"
}
},
"dataset3":{
"permissions":{
"role":"READER",
"group":"test3@test.com"
}
},
"dataset4":{
"permissions":{
"role":"READER",
"group":"test4@test.com"
}
},
"dataset5":{
"permissions":{
"role":"READER",
"group":"test5@test.com"
}
}
}
}
}
}
我試過了,但是唯一打印出來的是“ Array”。
這樣的事情不起作用:
$new_json = {path_to_json};
$new_projects = $new_json['projects'];
foreach ($new_projects as $project) {
echo $project . "<br>";
foreach ($new_projects['datasets'] as $datasets){
echo $datasets . "<br>";
}
}
$json='{
"projects":{
"test-project-1":{
"datasets":{
"dataset1":{
"permissions":{
"role":"WRITER",
"group":"test1@test.com"
}
},
"dataset2":{
"permissions":{
"role":"READER",
"group":"test2@test.com"
}
},
"dataset3":{
"permissions":{
"role":"READER",
"group":"test3@test.com"
}
},
"dataset4":{
"permissions":{
"role":"READER",
"group":"test4@test.com"
}
},
"dataset5":{
"permissions":{
"role":"READER",
"group":"test5@test.com"
}
}
}
},
"test-project-2":{
"datasets":{
"dataset1":{
"permissions":{
"role":"WRITER",
"group":"test1@test.com"
}
},
"dataset2":{
"permissions":{
"role":"READER",
"group":"test2@test.com"
}
},
"dataset3":{
"permissions":{
"role":"READER",
"group":"test3@test.com"
}
},
"dataset4":{
"permissions":{
"role":"READER",
"group":"test4@test.com"
}
},
"dataset5":{
"permissions":{
"role":"READER",
"group":"test5@test.com"
}
}
}
}
}
}';
$array= json_decode($json,true);
foreach($array["projects"] as $projectName => $projects)
{
echo "Project name ".$projectName."<br/>";
foreach($projects["datasets"] as $databaseNames => $databaseData)
{
echo " Database name ".$databaseNames."<br/>";
echo " Database role ".$databaseData["permissions"]["role"]."<br/>";
echo " Database group ".$databaseData["permissions"]["group"]."<br/>";
}
}
格式為foreach(“數組”為“數組中的鍵”)
foreach ($new_json as $new_projects) {
echo $new_projects . "<br>";
$datasets=$new_projects['datasets'];
foreach ($new_projects as $datasets){
echo $datasets . "<br>";
}
}
您需要使用json_decode函數PHP手冊
$jsonArray = json_decode($jsonData, true);
foreach($jsonArray as $project){
echo $project . '<br>';
foreach($project['datasets'] as $dataset)
{
echo $dataset . '<br>';
foreach($dataset['permissions'] as $permissions)
{
echo sprintf('Role: %s, group: %s<br>', $permissions['role'], $permissions['group'];
}
}
}
如果您不希望將json轉換為數組,則需要傳遞false作為第二個參數,而將返回stdClass。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.