我从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:我知道很多次都会问这个问题,但我找不到解决办法。
答案 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]);