我在PHP
中有以下代码:
$response = array(
"code"=>"100",
"message"=>"Invalid input",
"details"=>array(
));
echo json_encode($response);
返回JSON
,如下所示:
{"code":"100","message":"Invalid input","details":[]}
如何让PHP
脚本像这样返回JSON
:
{"code":"100","message":"Invalid input","details":{}}
使用{}
代替[]
。
答案 0 :(得分:6)
虽然我不同意,但请尝试:
echo json_encode($response, JSON_FORCE_OBJECT);
答案 1 :(得分:3)
您必须将详细信息键设为对象,而不是数组。
<?php
$response = array(
"code"=>"100",
"message"=>"Invalid input",
"details"=>new StdClass()
);
echo json_encode($response);
输出:{"code":"100","message":"Invalid input","details":{}}
答案 2 :(得分:3)
您可以强制将空数组渲染为对象with the JSON_FORCE_OBJECT
option:
echo json_encode(array(), JSON_FORCE_OBJECT);
// Returns {}
echo json_encode($response, JSON_FORCE_OBJECT);
// Returns {"code":"100","message":"Invalid input","details":{}}