在php中通读动态JSON
我需要知道如何在PHP中读取JSON,但我不知道该键的用途。这里是一个json的例子,我需要学习一下,但是没有一个键->值对总是相同的。其中一些密钥名称可能拼写不同,或者名称末尾有数字,因此我需要能够使它们动态 下面是我将循环使用的JSON的一个确切示例在php中通读动态JSON,php,Php,我需要知道如何在PHP中读取JSON,但我不知道该键的用途。这里是一个json的例子,我需要学习一下,但是没有一个键->值对总是相同的。其中一些密钥名称可能拼写不同,或者名称末尾有数字,因此我需要能够使它们动态 下面是我将循环使用的JSON的一个确切示例 [ { "var5":"item-company-1", "asd2":"item-company-1", "tie1":"0", "cxs1":"481.891px",
[
{
"var5":"item-company-1",
"asd2":"item-company-1",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},...
我知道如果我知道钥匙的确切名称,我会这样做
$someObject = json_decode($someJSON);
print_r($someObject); // Dump all data of the Object
echo $someObject[0]->name; // Access Object data
但是我不知道钥匙。我假设必须创建for next循环才能遍历每个对象,但我不知道如何在PHP中执行该操作。我假设您的json始终采用以下格式
$json = '[
{
"var5":"item-company-1",
"asd2":"item-company-1",
"tie1":"0",
"cxs1":"481.891px",
"xcve2":"130.563px"
},
{
"var6":"item-company-2",
"asd7":"item-company-2",
"tie8":"0",
"cxs9":"481.891px",
"xcve10":"130.563px",
"extra" : "unknown"
}
]';
然后可以将整个JSON
转换为一个数组并运行循环
$array = json_decode ($json ,true);
foreach ($array as $item) {
foreach($item as $key => $value) {
echo $value;
}
}
我标出了答案,因为他从技术上回答了我的问题 我还发现了这个解决方案,希望它能在将来帮助某些人,作为上述解决方案的一个很好的替代方案。实际上,这将遍历一个多级数组以获取所有值
$jsonIterator = new RecursiveIteratorIterator(
new RecursiveArrayIterator(json_decode($json, TRUE)),
RecursiveIteratorIterator::SELF_FIRST);
foreach ($jsonIterator as $key => $val) {
if(is_array($val)) {
echo "$key:\n";
} else {
echo "$key => $val\n";
}
}
您知道json的结构是否总是相同的吗?