清空数组()以序列化为JSON对象文字

时间:2013-12-29 22:51:25

标签: php json

我在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":{}}

使用{}代替[]

3 个答案:

答案 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":{}}