package MyApp::Schema::DB::Result::Table; ... extends 'DBIx::Class::Core'; ... sub TO_JSON { return { $_[0]->get_inflated_columns }; } #### package MyApp::View::JSON; use Moose; use JSON::XS (); extends 'Catalyst::View::JSON'; my $encoder = JSON::XS->new->utf8->pretty(0)->indent(0) ->allow_blessed(1)->convert_blessed(1); sub encode_json { my( $self, $c, $data ) = @_; $encoder->encode( $data ); } #### package MyApp::Schema::DB::Result::Base; use Moose; use namespace::autoclean; extends 'DBIx::Class::Core'; sub TO_JSON {...} package MyApp::Schema::DB::Result::Table; ... extends 'MyApp::Schema::DB::Result::Base'; ...