2017-01-05 2 views
-1

Я пытаюсь получить маркер провел в этой переменной $data - который я получил черезPHP - Decode JSON

$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 
       } 

Я уже расшифровали JSON и держалось в $ данные

Я попытался получить

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

и

echo $data[response][token]; 
+0

показать код для декодирования JSON –

+0

показать строку кода, где вы декодировать JSON в $ данных. это важно. – YvesLeBorg

+0

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

ответ

3

Ключи должны быть в кавычках. Попробуйте так:

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

Если предположить, что строки, как:

  $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

+0

Прохладный - когда я это делаю, я выводю весь json, а не только токен. –

+0

@RodrigoBoratto вы можете проверить здесь json. http://json.parser.online.fr/. Json добавил в ответ прав. Скопируйте весь код и запустите локально, чтобы увидеть результат. –

+1

@RodrigoBoratto, тогда вы должны прокомментировать в области вопросов. –

-1

Если вы используете json_decode (вар, истинный) для декодирования, то результат будет ассоциативного массива (потому что истины во втором аргументе), так что вы должны сделать это:

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

Полный Exa mple:

$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"]; 
+0

OP, иначе декодирование ассоциативный массив. – YvesLeBorg

+0

ops! изменяясь для ассоциативного тогда. –