2016-04-30 24 views
1

hier zu bekommen, ist mein json was ich von mongodb erhalten:wie _id von json dekodieren

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 

Um Standort zugreifen ich in php folgende Anweisung verwenden

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

Ich möchte Machen Sie es generisch, indem Sie zuerst _id erhalten und dann die obige Anweisung verwenden. Ich habe folgende Aussagen versucht, die all Return-Fehler:

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]; 

bitte mir sagen, wie dieses Problem zu lösen

+0

können Sie Ihr JSON-Format zeigen? –

+0

@Irfan {"572453d55addfab49090ea71": {"_ id": {"$ id": "572453d55addfab49090ea71"}, "location": [24.8615,67.0099]}} – puffles

+0

was ist die Ausgabe von 'echo var_dump (json_decode ($ arr)); '? –

Antwort

1

Verwendung weitere Parameter true mit json_decode(), dann werden Sie das Ergebnis als PHP-Array-Format erhalten.

den Code verwenden, unter Array zu drucken und das Ergebnis hier einfügen, dann werde ich Sie wissen lassen, wie Sie Ihre _id drucken

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

Resultierte Array wie folgt

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

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

sein sollte Schließlich verwenden Sie:

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

@Anant, ja es sollte sein, aber Codierung scheint nicht gut im Kommentar .. sorry .. –

+0

Ein Zeilencode kann in Kommentar gemacht werden. Sie können oben sehen. Nichts für ungut –

+0

Es ist okay, ich werde auf das Ding beim nächsten Mal aufpassen .. Danke –

Verwandte Themen