PHPでJSON文字列をデコードするときによく連想配列形式でデコードしてたんだけど、この場合空オブジェクトをデコード→エンコードしたときに元の形式に戻らない。
<?php
$jsonStr = '{"value1":{},"value2":}';
$jsonObj = json_decode($jsonStr, true);
$jsonStr = json_encode($jsonObj);
echo $jsonStr;
// 期待値:{"value1":{},"value2":}
// 結果 :{"value1":,"value2":}
連想配列形式でデコードしなければちゃんと元の形式で出力される。
<?php
$jsonStr = '{"value1":{},"value2":}';
$jsonObj = json_decode($jsonStr);
$jsonStr = json_encode($jsonObj);
echo $jsonStr;
// 結果 :{"value1":{},"value2":}