-1

I am trying to get the token held in this variable $data - which I obtained via

$data = json_decode($result, true); 

json:

{
    "response": {
        "status": "OK",
        "token": "goog:11229:116ewfd1c0f5c:goog",
        "dbg_info": {
            "instance": "53.google.com",
            "slave_hit": false,
            "db": "master",
            "parent_dbg_info": {
                "instance": "23.google.com",
                "slave_hit": false,
                "db": "master",
                "parent_dbg_info": {
                    "instance": "44.google.com",
                    "slave_hit": false,
                    "db": "master",
                    "time": 212.100215784,
                    "version": "1.19",
                    "warnings": [],
                    "slave_lag": 0,
                    "start_microtime": 123620305.0342
                }

I already decoded the JSON and it's held in $data

I tried to get

echo $data[response]->[token]; 

and

echo $data[response][token]; 
LF00
  • 27,015
  • 29
  • 156
  • 295
Cody Raspien
  • 1,753
  • 5
  • 26
  • 51

2 Answers2

3

Keys should be in quotes. Try like this:

echo $data['response']['token'];

ASSUMING your string like:

         $json='{"response":{"status":"OK","token":"goo:187089:586e5e5cc0666:goo","dbg_info":{"instance":"50.bm-goo.prod.ams1","slave_hit":false,"db":"master","parent_dbg_info":{"instance":"71.goo.prod.nym2","slave_hit":false,"db":"master","parent_dbg_info":{"instance":"44.goo.nym2","slave_hit":false,"db":"master","time":735.19611358643,"version":"1.17","warnings":[],"slave_lag":1,"start_microtime":1483628123.6313},"awesomesauce_cache_used":false,"count_cache_used":false,"uuid":"306aa2c0-f625-55c8-8984-db43b434b289","warnings":[],"time":1451.1139392853,"start_microtime":1483628123.557,"version":"1.17.150","slave_lag":0,"output_term":"not_found"},"awesomesauce_cache_used":false,"count_cache_used":false,"uuid":"48060f64-9b7c-50fd-a243-b17d3064a9a7","warnings":[],"time":1635.9009742737,"start_microtime":1483628123.4259,"version":"1.17.150","slave_lag":1,"output_term":"not_found","master_instance":"71.goo.prod.nym2","proxy":true,"master_time":1451.1139392853}}} ';

$data=json_decode($json,true);
 echo $data['response']['token'];//goog:11229:116ewfd1c0f5c:goog

DEMO

Suchit kumar
  • 11,809
  • 3
  • 22
  • 44
-1

If you are using JSON_DECODE(var, true) to decode, the result will be an Associative Array (because of true in the second argument), so you have to do this:

echo $data["response"]["token"];

Full Example:

$json = '
{
   "response":{
      "status":"OK",
      "token":"goog:11229:116ewfd1c0f5c:goog",
      "dbg_info":{
         "instance":"53.google.com",
         "slave_hit":false,
         "db":"master",
         "parent_dbg_info":{
            "instance":"23.google.com",
            "slave_hit":false,
            "db":"master",
            "parent_dbg_info":{
               "instance":"44.google.com",
               "slave_hit":false,
               "db":"master",
               "time":212.100215784,
               "version":"1.19",
               "warnings":[

               ],
               "slave_lag":0,
               "start_microtime":123620305.0342
            }
         }
      }
   }
}
';
$data = json_decode($json, true);

echo $data["response"]["token"];
Rodrigo Boratto
  • 1,053
  • 13
  • 13