如何从json解码中获取_id

时间:2016-04-30 07:50:34

标签: php json mongodb

这是我从mongodb获得的json:

object(stdClass)[6]
  public '572453d55addfab49090ea71' => 
    object(stdClass)[7]
      public '_id' => 
        object(stdClass)[8]
          public '$id' => string '572453d55addfab49090ea71' (length=24)
      public 'location' => 
        array (size=2)
          0 => float 24.8615
          1 => float 67.0099

为了访问位置,我必须在php中使用以下语句

$lat= $j->{'572453d55addfab49090ea71'}->location[0]; 

我希望首先获取_id然后使用上述语句使其成为通用的。我试过以下语句,这些语句都返回错误:

 echo $arr= json_encode(iterator_to_array($cursor));
     echo var_dump(json_decode($arr));
$j = json_decode($arr,false);
     $lat = $j->_id->id;
    $lng = $j->id->location[1];

请告诉我如何解决这个问题

1 个答案:

答案 0 :(得分:1)

将另一个参数truejson_decode()一起使用,然后您将获得php数组格式的结果。

使用下面的代码打印数组并将结果粘贴到此处,然后我们将告诉您如何打印_id

$jsonDecode = json_decode($yourJson, true);
echo "<pre>"; print_r($jsonDecode);

结果数组应该是这样的

 Array ( 
        [572453d55addfab49090ea71] =>
                 Array ( 
                        [_id] => 
                                Array ( 
                                        [$id] => 572453d55addfab49090ea71 
                                      )

                         [location] => Array ( [0] => 24.8615 [1] => 67.0099 ) 
                       ) 
        )

最后使用:

$_id = array_column($jsonDecode, '_id');
echo $_id[0]['$id'];