У меня есть следующий файл 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'
Кто-нибудь может мне помочь? Благодаря!
Если вам не нужен результирующий вывод в качестве объекта, вы можете использовать версию массива json_decode
$data = json_decode(file_get_contents($path), true); $properties = array_keys($data);
вы также можете попробовать использовать json_decode, чтобы дать вам ассоциативный массив
$path='./datafiles/jsonTest.json'; $data = json_decode(file_get_contents($path),true); foreach($data as $name => $value){ echo $name.'<br>'; }
Вы пробовали ключ?
foreach($properties as $key => $propName){ echo $key.'<br>'; }
Вы можете использовать отражение, чтобы получить имена свойств ( http://php.net/manual/en/reflectionclass.getproperties.php ) – что было бы элегантным способом – или вы решили не расшифровывать данные Json и извлекать имена и значения с ручными строковыми операциями.