我有一个Json文件,我需要提取" tempm"我尝试使用不同的形式,但不能只获得那个价值。 1] 1
$history1 = ("http://link_to_my_api");
echo $history1;
$json_string = file_get_contents($history1);
$parsed_json = json_decode($json_string);
$location = $parsed_json->{'history'}->{'observations'};
var_dump( $location[0]);
答案 0 :(得分:0)
通过添加true作为json_encode的第二个参数,将json输出转换为数组而不是对象,使一切更容易导航。
答案 1 :(得分:0)
未经测试,但我想这应该有效:
function ext($obj,$name){
$ret=array();
$rem=array();
$f=function() use(&$rem,&$ret,$name){
$v=reset($rem);
assert(NULL!==($key1=key($rem)));
unset($rem[$key1]);
foreach($v as $key2=>$value){
if($key2==$name){$ret[]=$value;}
if(is_array($value) || is_object($value))
{
$rem[]=$value;
}
}
};
$rem[]=$obj;
while(!empty($rem))
{
$f();
}
return $ret;
}
$tempm_arr=ext($parsed_json,'tempm');
$tempm=$tempm_arr[0];
警告:这可能导致带有递归引用的对象/数组的无限循环。