【发布时间】:2017-08-10 16:17:59
【问题描述】:
我有一个像这样的有效 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
}
我猜“默认”和“测试”在 json 的第一个数组中? 现在我需要找到一种方法来读取它们并将它们保存为字符串。 foreach 不会有那么大的错误,因为如果添加了像“test2”这样的组,我也想阅读它。
我正在与未定义和非法的偏移量作斗争(因为我不能使用数组作为键?)。
因为我得到的值是这样的:
$json_data["default"]["key_value"]
我认为像 $json_data[0] 这样的东西应该是“默认”的。 显然,这也是一个数组吧?我已经在论坛中四处看了看,但不幸的是,没有人拥有与他们的问题得到解决时相同的 JSON 结构。 也许像这样使用它只是愚蠢,但必须有一种方法让它正常工作? 可能也只有 3 行代码,我现在还没到那里……我已经尝试了很多。
也许你们可以帮助我。
【问题讨论】:
标签: php arrays json decode associative