デフォルトでは、php json_encode() は空の配列に対して "[]" 空のブラケットを返します。また、「{}」括弧を返すように変更することもできます:
<?php
$result = array();
$json = json_encode($result, JSON_FORCE_OBJECT);
print($json);
配列が空の場合、空の括弧ではなくnullを返すようにWebサービスを修正する必要があります。簡単で標準的な方法はありますか?
深くネストされた構造があり、空の葉を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 葉のみを含む枝は置き換えられないことに注意してください。
あなたはこれを行うことができませんか?:
print ($json == '[]') ? null : $json;