默认情况下,php json_encode()为空数组返回“[]”空括号。此外,可以更改为返回“{}”括号:
<?php
$result = array();
$json = json_encode($result, JSON_FORCE_OBJECT);
print($json);
如果数组为空,则需要修复Web服务以返回null而不是空括号。有没有简单而标准的方法?
答案 0 :(得分:1)
我知道你会有深层嵌套结构,并且你想用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}
请注意,它会替换空叶,但它不会替换仅包含空叶的分支。
答案 1 :(得分:0)
print ($json == '[]') ? null : $json;