support structured json output