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

Как получить фигурные скобки вместо квадратных скобок? Заранее благодарю за любую помощь.

-1

Решение

Как сказал Пол Кровелла, ваша заявленная цель — недействительный JSON.

Ваши действительные варианты для facebook свойство напрямую содержать строку сообщения:

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

(обратите внимание, я добавил внешний { а также } отсутствует в вашем вопросе) …в этом случае вы хотите:

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

Или вы можете сделать facebook обратиться к объекту с message свойство, которое имеет значение, например:

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

делая это:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]