0

默认情况下,php json_encode() 为空数组返回“[]”空括号。此外,可以更改为返回“{}”括号:

<?php

  $result = array();
  $json = json_encode($result, JSON_FORCE_OBJECT);
  print($json);

如果数组为空,则需要修复 Web 服务以返回 null 而不是空括号。有没有简单又标准的方法?

4

2 回答 2

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}

请注意,它会替换空叶子,但不会替换仅包含空叶子的分支。

于 2013-07-23T14:27:53.610 回答
0

你不能这样做吗?:

print ($json == '[]') ? null : $json;
于 2013-07-23T14:07:49.053 回答