我有一个以下的JSON文件:
{"ver":2,"sb":[some array],"ld":[some array] ,"hd":[some array]}
我尝试使用下一个代码来识别属性名称:
$path='./datafiles/jsonTest.json';
$data = json_decode(file_get_contents($path));
$properties=get_object_vars($data);
foreach($properties as $propName){
echo $propName.'<br>';
}
但结果我得到了:
2
Array
Array
Array
我需要的时候:
'ver'
'sb'
'ld'
'hd'
有人能帮助我吗?谢谢!
答案 0 :(得分:3)
如果您不需要将结果输出作为对象,则可以使用json_decode
的数组版本
$data = json_decode(file_get_contents($path), true);
$properties = array_keys($data);
答案 1 :(得分:3)
您也可以尝试使用json_decode为您提供关联数组
$path='./datafiles/jsonTest.json';
$data = json_decode(file_get_contents($path),true);
foreach($data as $name => $value){
echo $name.'<br>';
}
答案 2 :(得分:1)
你试过钥匙吗?
foreach($properties as $key => $propName){
echo $key.'<br>';
}
答案 3 :(得分:1)
您可以使用反射来获取属性名称(http://php.net/manual/en/reflectionclass.getproperties.php) - 这将是优雅的方式 - 或者您决定不解码Json数据并使用手动字符串操作提取名称和值。