2016-09-25 76 views
-1

我試圖輸出大括號從我的數組是這樣的:PHP數組大括號而不是方括號

"data":{facebook":{"message"}}, 

,但我不斷收到方括號:

"data":{"facebook":["message"]} 

這裏是我的代碼:

$output["contextOut"] = array(array("name" => "$next-context", "parameters" => 
array("param1" => $param1value, "param2" => $param2value))); 
$output["speech"] = $outputtext; 
$output["data"] = array("facebook" => array("message")); 
$output["displayText"] = $outputtext; 
$output["source"] = "index.php"; 
ob_end_clean(); 
echo json_encode($output); 

,這是我的JSON編碼輸出:

{"contextOut":[{"name":"buy-context","parameters":{"param1":null,"param2":null}}],"speech":"msg","data":{"facebook":["message"]},"displayText":"msg","source":"index.php"} 

如何獲得大括號而不是方括號?預先感謝您的幫助。

+2

你所需的輸出不是有效的JSON。 –

+2

'{}'用於__object__。 –

+0

請參閱[JSON語法](http://www.json.org/) – RiggsFolly

回答

2

正如Paul Crovella所說,你聲明的目標是無效的JSON。

你有效的選項都爲facebook屬性直接包含消息字符串:

{ 
    "data":{"facebook":"message"}, 
} 

(注意:我已經添加了外{}從你的問題遺漏) ...在這種情況下,你想:

$output["data"] = array("facebook" => "message"); 

或者你可以讓facebook參考的對象與具有價值,像這樣的message性質:

{ 
    "data":{"facebook":{"message":"value"}}, 
} 

通過這樣做:

$output["data"] = array("facebook" => array("message" => "value"));