2015-08-20 31 views
-1

一個JSON字符串這是JSON字符串如何解碼在PHP

{"Header":{}, 
"Body": 
    {"ResponseMsg": 
     {"response": 
      {"ResponseCode":"0020", 
       "ResponseDesc": "user is not accepted!", 
       "ConversationID": {}, 
       "OriginatorConversationID":{}, 
       "ServiceStatus":"0" 
      } 
     } 
    } 
} 

這是我使用這個字符串解碼的代碼;

$dec = json_decode($json,true); 
    var_dump($result->Header->Body->response->ResponseCode); 

但我一直收到以下錯誤

注意:試圖讓非對象的財產C:\ XAMPP \ htdocs中\網絡\ server.php上線....

請幫助這個icorrectly格式化JSON字符串解碼

+0

json字符串是有效的。嘗試'var_dump($ result-> Body-> ResponseMsg-> response-> ResponseCode);'如果你做了'var_dump($ result)',你就會看到你的對象的結構。 –

+2

'json_decode(...,true)'表示你會得到一個數組結構,而不是一個對象鏈。 – mario

+0

也測試你的結構內json。因爲你的json字符串和'$ result-> Header-> Body-> response-> ResponseCode'具有不同的結構。 –

回答

0

試試這個。

$dec = json_decode('{"Header":{}, 
"Body": 
{"ResponseMsg": 
    {"response": 
     {"ResponseCode":"0020", 
      "ResponseDesc": "user is not accepted!", 
      "ConversationID": {}, 
      "OriginatorConversationID":{}, 
      "ServiceStatus":"0" 
     } 
    } 
} 
}'); 

echo $dec->Body->ResponseMsg->response->ResponseCode; 

Result: '0020' 

您不需要使用標題,因爲它與身體處於同一級別。

1

頭部身體處於同一級別。 試試這個:

var_dump($result["Body"]["response"]["ResponseCode"]);