这是我从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];
请告诉我如何解决这个问题
答案 0 :(得分:1)
将另一个参数true
与json_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'];