2017-01-05 12 views
0

Ich Frage einen Drittanbieter-Dienst, der Json ausgibt.JSON Parsing - Ausgaben NULL - PHP

$data = json_decode($result,true); 
var_dump ($data); 

$ data hält dies:

{"response":{"status":"OK","token":"hbapi:187089:586e655ed1f9c:nym2","dbg_info":{"instance":"53.bm-hbapi.prod.ams1","slave_hit":false,"db":"master","parent_dbg_info":{"instance":"64.bm-hbapi.prod.nym2","slave_hit":false,"db":"master","parent_dbg_info":{"instance":"45.bm-api.prod.nym2","slave_hit":false,"db":"master","time":664.07299041748,"version":"1.17","warnings":[],"slave_lag":0,"start_microtime":1483629917.8571},"awesomesauce_cache_used":false,"count_cache_used":false,"uuid":"39e1c17a-7fe4-58ac-9486-c4dd5bbf96a3","warnings":[],"time":1159.7349643707,"start_microtime":1483629917.7835,"version":"1.17.150","slave_lag":0,"output_term":"not_found"},"awesomesauce_cache_used":false,"count_cache_used":false,"uuid":"286ca4bc-6964-50ad-b241-ff9df1304278","warnings":[],"time":1347.2578525543,"start_microtime":1483629917.6534,"version":"1.17.150","slave_lag":0,"output_term":"not_found","master_instance":"64.bm-hbapi.prod.nym2","proxy":true,"master_time":1159.7349643707}}} 

Ich versuche, den Token-Wert zu erhalten.

Ich versuchte

$token = $data["response"][0]["token"]; 

ich NULL erhalten

Ich habe auch versucht

$token = $data['response'][0]['token']; 

Und ich immer noch NULL bekommen.

Ich habe How can I access an array/object? und andere Themen angeschaut - kann das Problem nicht finden.

+0

Mögliche Duplikat [Zugriffs JSON-Objekt in php] (http://stackoverflow.com/questions/15440956/access-json-object-in-php) – xFighter

+0

Sie sagen, Sie tun 'var_dump ($ data) 'und das json ist deine Ausgabe ?? – yivi

Antwort

-1

In $ Daten haben Sie noch json, also sollten Sie json_decode ($ data) noch einmal aufrufen.

1
$token = $data["response"]["token"]; 

json:

{ 
    "response": { 
     "status": "OK", 
     "token": "hbapi:187089:586e655ed1f9c:nym2", 
     "dbg_info": { 

     } 
    } 
} 
0

$data ist ein Objekt (kein Array), so dass Sie response als Eigenschaft dieses Objekts zugreifen: $data->response.

response ist wieder ein Objekt. usw.

Zum Beispiel status kann so genannt werden: $data->response->status.

können Sie sehen, was ein Objekt ist und was ist ein Array mit diesem Code:

print "<pre>"; 
var_dump($data); 

So in Ihrem Fall token zu bekommen:

$token = $data->response->token 
+0

Ich bekomme immer noch NULL –

+0

Entschuldigung, ich habe die "wahre" Flagge in Ihrem 'json_decode' Anruf übersehen. Nun .. wenn Sie dieses Flag entfernen ('$ data = json_decode ($ result);'), sollte dieses Beispiel funktionieren :) Ansonsten @ Dobe Lee's Antwort ist korrekt. – Graftak

0

Warum Sie die pos zugreifen [ 0] Wenn es kein Array ist?

Statt dessen versuchen, auf den gewünschten Parameter wie folgt zugreifen:

$token = $data["response"]["token"]; 
0

Änderung $data['response'][0]['token'];-$data['response']['token'];

$ data [ 'Antwort'] ist, doesnot es die 0-Index haben.

{ 
    "status": "OK", 
    "token": "hbapi:187089:586e655ed1f9c:nym2", 
    "dbg_info": { 

}