默认情况下,php json_encode() 为空数组返回“[]”空括号。此外,可以更改为返回“{}”括号:
<?php
$result = array();
$json = json_encode($result, JSON_FORCE_OBJECT);
print($json);
如果数组为空,则需要修复 Web 服务以返回 null 而不是空括号。有没有简单又标准的方法?
我知道你会有很深的嵌套结构,你想用 null 替换空叶子。
如果是这种情况,您可以简单地查找和替换。
$result = array("test" => array("Foo"=> new stdClass()), "testy" => array());
$json = json_encode($result);
$strippedJson = str_replace(array('[]', '{}'), 'null', $json);
会给这个json:
{"test":{"Foo":null},"testy":null}
请注意,它会替换空叶子,但不会替换仅包含空叶子的分支。
你不能这样做吗?:
print ($json == '[]') ? null : $json;