2013-02-04 133 views
1

我只是張貼單一數據值這樣的 '{' 郵件 ':' [email protected] '}' 在這個階段json_decode返回JSON數據

php文件

$var = json_decode($_POST,true); 
echo json_encode($var["email"]); 

我只是想返回電子郵件地址以使其工作,但它給了我這個錯誤:

json_decode()期望參數1是字符串,數組在C:\ wamp \ www \ buyme \ include \ getemailaddress.php在線

4號線是在我的代碼

所有我希望能夠待辦事項是訪問電子郵件值和json_encode其返回(是$ var [「電子郵件」])

+0

你不能解碼它必須是JSON – rohitarora

+0

你想傳遞一個數組($ _ POST)的陣列,而不是你需要密碼的一個簡單的字符串。 '{'email':'[email protected]'}' – Raja

回答

1

如果我給你的第一行正確和你發佈一個JSON字符串,你可以這樣做:

$requestBody = @file_get_contents('php://input'); 
$var = json_decode($requestBody, true); 
echo json_encode($var['email']); 
+0

它返回null – ONYX

+0

什麼返回null? '$ requestBody'? '$ var'?或'$ var ['email']'?你必須更具體一點 –

0

正如你可以在PHP手冊$_POST閱讀,$ _ POST包含關聯數組值。作爲manaul過,那就是:

An associative array of variables passed to the current script via the HTTP POST method. 

因此,如果您要發送從客戶端的任何JSON字符串中的任何變量,使用該變量來讀取JSON字符串這樣。

$var = json_decode($_POST['emaildata'],true); 
echo json_encode($var["email"]); 

請檢查,如果你的作品..

+0

我如何訪問發佈的jason對象你是否知道你是如何做到這一點的我變得困惑或讓人困惑我 – ONYX

+0

你如何發佈客戶端數據,你能分享一下代碼嗎?讓我知道如果你也試過$ _POST ['variable-name'] ..這裏的變量名包含那個json字符串。 –