1 package Catalyst::Action::Serialize::JSON;
4 use namespace::autoclean;
6 extends 'Catalyst::Action';
7 use JSON::MaybeXS qw(JSON);
16 return JSON->new->utf8->convert_blessed;
21 my ( $controller, $c ) = @_;
23 if (my $options = $controller->{json_options_encode}) {
24 foreach my $opt (keys %$options) {
25 $self->encoder->$opt( $options->{$opt} );
30 $controller->{'serialize'} ?
31 $controller->{'serialize'}->{'stash_key'} :
32 $controller->{'stash_key'}
34 my $output = $self->serialize( $c->stash->{$stash_key} );
35 $c->response->output( $output );
42 $self->encoder->encode( $data );
45 __PACKAGE__->meta->make_immutable;