I have a PHP data structure I want to JSON encode. It can contain a number of empty arrays, some of which need to be encoded as arrays and some of which need to be encoded a
Create bar1 as a new stdClass() object. That will be the only way for json_encode() to distinguish it. It can be done by calling new stdClass(), or casting it with (object)array()
$foo = array(
"bar1" => new stdClass(), // Should be encoded as an object
"bar2" => array() // Should be encoded as an array
);
echo json_encode($foo);
// {"bar1":{}, "bar2":[]}
OR by typecasting:
$foo = array(
"bar1" => (object)array(), // Should be encoded as an object
"bar2" => array() // Should be encoded as an array
);
echo json_encode($foo);
// {"bar1":{}, "bar2":[]}