试图获取非对象

时间:2016-04-30 06:01:56

标签: php json mongodb

我从monogodb获取位置:[]然后在json中对其进行编码并将其打印在屏幕上。这是输出:

{"57237036d89c45e1e3fda94e":{"_id":{"$id":"57237036d89c45e1e3fda94e"},"location":[33.7715,72.7511]}}

现在的问题是我试图从这个JSon只获取位置,所以我解码了它。这是代码:

  echo $arr= json_encode(iterator_to_array($cursor));
  $j= json_decode($arr,true);
  var_dump( $j->location); 

var_dump返回null。此外,它显示以下错误

Trying to get property of non-object 
PS:我知道很多次都会问这个问题,但我找不到解决办法。

1 个答案:

答案 0 :(得分:0)

$j->location仍无效。您可以通过以下两种方法获取位置

您的位置为$j->57237036d89c45e1e3fda94e->location

$arr = '{"57237036d89c45e1e3fda94e":{"_id":{"$id":"57237036d89c45e1e3fda94e"},"location":[33.7715,72.7511]}}';
$j= json_decode($arr);
$x = '57237036d89c45e1e3fda94e'; 
var_dump( $j->$x->location); 
// if you don't want to declare $x
var_dump( $j->{'57237036d89c45e1e3fda94e'}->location); 

或使用数组方法

$j = json_decode($arr, true);
var_dump( $j['57237036d89c45e1e3fda94e'][location]);