--TEST-- JsonProcessor test #10: Serialize --FILE-- <?php use php\format\JsonProcessor; use php\lib\items; $json = new JsonProcessor(); $json->onSerialize('object', function ($val) { return items::toArray((array) $val); }); // ignoring int handler $obj = new stdClass(); $obj->x = 10; $obj->y = 20; $obj->obj = new stdClass(); echo $json->format($obj); ?> --EXPECTF-- [10,20,{}]
--TEST-- JsonProcessor test #8: Serialize --FILE-- <?php use php\format\JsonProcessor; $json = new JsonProcessor(); $json->onSerialize('int', function ($val) { return "int:" . $val; }); echo $json->format([1, 2]), "\n"; $json->onSerialize('int', null); echo $json->format([1, 2]), "\n"; ?> --EXPECTF-- ["int:1","int:2"] [1,2]
--TEST-- JsonProcessor test #9: Serialize --FILE-- <?php use php\format\JsonProcessor; $json = new JsonProcessor(); $json->onSerialize('int', function ($val) { return "int:" . $val; }); $json->onSerialize('array', function ($val) { return $val; }); // ignoring int handler echo $json->format([1, 2]); ?> --EXPECTF-- [1,2]
--TEST-- JsonProcessor test #7: Serialize --FILE-- <?php use php\format\JsonProcessor; $json = new JsonProcessor(); $json->onSerialize('int', function ($val) { return "int:" . $val; }); $json->onSerialize('float', function ($val) { return "float:" . $val; }); $json->onSerialize('bool', function ($val) { return "bool:" . (int) $val; }); $json->onSerialize('null', function ($val) { return "empty:" . $val; }); $json->onSerialize('string', function ($val) { return "str:'" . $val . "'"; }); var_dump($json->format(1)); var_dump($json->format(1.1)); var_dump($json->format(true)); var_dump($json->format(false)); var_dump($json->format(null)); var_dump($json->format('foobar')); ?> --EXPECTF-- string(7) ""int:1"" string(11) ""float:1.1""