0

デフォルトでは、php json_encode() は空の配列に対して "[]" 空のブラケットを返します。また、「{}」括弧を返すように変更することもできます:

<?php

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

配列が空の場合、空の括弧ではなくnullを返すようにWebサービスを修正する必要があります。簡単で標準的な方法はありますか?

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}

空の葉は置き換えられますが、null 葉のみを含む枝は置き換えられないことに注意してください。

于 2013-07-23T14:27:53.610 に答える
0

あなたはこれを行うことができませんか?:

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