2017-01-05 112 views
-1

我试图让这个变量$data举行的令牌 - 这是我通过PHP - 解码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解码为$ data的代码行。它很重要。 – 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(VAR,真)解码,其结果将是一个关联数组(因为在第二个参数中为true),所以你必须这样做:

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

Full 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!然后改变联想。 –