按 ID 而非值获取 JSON 组名称
Get JSON Group Name By ID, Not Value
我有一个像这样的有效 JSON 文件:
{
"default": {
"key_value": "Default Value"
},
"test": {
"key_value": "Test Value"
}
}
我想获取字符串形式的组名:"default" 和 "test"。
我知道我可以使用类似的东西:
{
"general": {
"id": "default",
"key_value": "Default Value"
},
{
"id": "test",
"key_value": "Test Value"
}
}
但是由于我的JSON是有效的并且我的读取和保存文件的功能已经可以正常工作,所以我想用原来的结构来实现这个。
为了实验,我得到了类似的东西:
$json = file_get_contents("file.json");
$json_data = json_decode($json, true); // I guess assoc must be true?
foreach ($json_data as $item) } // My hope was that i am able to read $item, however it is an array
echo $item["key_value"]."<br />"; // That gives me "Default Value" and "Test Value", so thats at least something
}
我猜 "default" 和 "test" 在 json 的第一个数组内?
现在我需要找到一种方法来读取它们并将它们保存为字符串。
foreach 不会那么错,因为如果添加了像 "test2" 这样的组,我也想阅读它。
我正在与未定义和非法的偏移量作斗争(因为我不能使用数组作为键?)。
因为我得到的值是这样的:
$json_data["default"]["key_value"]
我认为 $json_data[0] 应该是 "default"。
显然,这也是一个数组吧?我已经在论坛中四处张望了,但不幸的是,没有人拥有相同的 JSON 结构,因为他们的问题已得到解决。
也许像这样使用它只是愚蠢,但必须有一种方法让它正常工作?
可能它也只有 3 行代码,我现在还没有到达那里......我已经尝试了很多。
也许你们可以帮助我。
我想你想要的是这个:
foreach($json_data as $key=>$value) {
echo $key, "<br />\n";
}
如果你想要更好一点,你可以使用array_keys()
:
foreach(array_keys($json_data) as $key) {
echo $key, "<br />\n";
}
你必须尝试这个循环:
foreach ($array as $key => $value) {
// you could print here the key or value
}
我有一个像这样的有效 JSON 文件:
{
"default": {
"key_value": "Default Value"
},
"test": {
"key_value": "Test Value"
}
}
我想获取字符串形式的组名:"default" 和 "test"。 我知道我可以使用类似的东西:
{
"general": {
"id": "default",
"key_value": "Default Value"
},
{
"id": "test",
"key_value": "Test Value"
}
}
但是由于我的JSON是有效的并且我的读取和保存文件的功能已经可以正常工作,所以我想用原来的结构来实现这个。
为了实验,我得到了类似的东西:
$json = file_get_contents("file.json");
$json_data = json_decode($json, true); // I guess assoc must be true?
foreach ($json_data as $item) } // My hope was that i am able to read $item, however it is an array
echo $item["key_value"]."<br />"; // That gives me "Default Value" and "Test Value", so thats at least something
}
我猜 "default" 和 "test" 在 json 的第一个数组内? 现在我需要找到一种方法来读取它们并将它们保存为字符串。 foreach 不会那么错,因为如果添加了像 "test2" 这样的组,我也想阅读它。
我正在与未定义和非法的偏移量作斗争(因为我不能使用数组作为键?)。
因为我得到的值是这样的:
$json_data["default"]["key_value"]
我认为 $json_data[0] 应该是 "default"。 显然,这也是一个数组吧?我已经在论坛中四处张望了,但不幸的是,没有人拥有相同的 JSON 结构,因为他们的问题已得到解决。 也许像这样使用它只是愚蠢,但必须有一种方法让它正常工作? 可能它也只有 3 行代码,我现在还没有到达那里......我已经尝试了很多。
也许你们可以帮助我。
我想你想要的是这个:
foreach($json_data as $key=>$value) {
echo $key, "<br />\n";
}
如果你想要更好一点,你可以使用array_keys()
:
foreach(array_keys($json_data) as $key) {
echo $key, "<br />\n";
}
你必须尝试这个循环:
foreach ($array as $key => $value) {
// you could print here the key or value
}