2

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

4 回答 4

4

如果您不需要将结果输出作为对象,则可以使用数组版本json_decode

$data = json_decode(file_get_contents($path), true);

$properties = array_keys($data);
于 2013-06-05T11:40:37.653 回答
4

你也可以尝试使用 json_decode 给你一个关联数组

$path='./datafiles/jsonTest.json';
$data = json_decode(file_get_contents($path),true);
foreach($data as $name => $value){
    echo $name.'<br>';
}
于 2013-06-05T11:40:46.670 回答
1

你试过钥匙吗?

foreach($properties as $key => $propName){
    echo $key.'<br>';
}
于 2013-06-05T11:37:38.133 回答
1

您可以使用反射来获取属性名称(http://php.net/manual/en/reflectionclass.getproperties.php) - 这将是一种优雅的方式 - 或者您决定不解码 Json 数据并提取名称和手动字符串操作的值。

于 2013-06-05T11:41:08.153 回答