在做接口开发的时候,经常需要将结果json化返回给前端,而如果结果集为空的时候,json_encode
返回的是空数组[]
,而不是预期的{}
,这时候虽然不影响使用,但是前端同学会觉得很怪,需要多做一个判断。
$aa = [];
$bb = ['a'=>12];
echo json_encode($aa), PHP_EOL, json_encode($bb);
输出
[]
{"a":12}
为了保持结果的结构一致性,我们需要在空数组的时候也返回空对象。那么应该在 json_encode 的第二个参数填上 JSON_FORCE_OBJECT
,
$aa = [];
$bb = ['a'=>12];
echo json_encode($aa, JSON_FORCE_OBJECT), PHP_EOL, json_encode($bb, JSON_FORCE_OBJECT);
输出
{}
{"a":12}