A recursive un/serializer object <-> array