如何获取JSON属性名称php

时间:2013-06-05 11:35:16

标签: php json oop

我有一个以下的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'

有人能帮助我吗?谢谢!

4 个答案:

答案 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数据并使用手动字符串操作提取名称和值。