Alternatively, you can use https://metacpan.org/module/DBIx::Class::Helper::Row::ToJSON to allow for automatic serialization.
Cheers, Matt On Wed, Apr 25, 2012 at 9:53 AM, will trillich <will.trill...@serensoft.com>wrote: > Roland -- > > Assuming your JSON view is trying to encode the 'result' item from your > stash, first let's see why encoding a blessed object is fraught with peril. > > Try running your server in debug mode, and when you get to the ->stash() > line, try "x $rs". You really want all that JSON-encoded? > > Blessed objects (such as a recordset or a request or a response) typically > contain many, many layers that are often going to be overkill when encoding > stuff as JSON, when really you just want a few top-level items. > > So you should iterate through your objects and/or collections and create a > hashref that contains plain primitives (or maybe a few more hashrefs or > arrayrefs when needed) instead of asking JSON to translate blessed objects > that are dozens of layers deep. > > Instead of doing ...->stash( result => [ $rs ] ) build your own data > structure, by doing something like > > my $json = { > data => [], > count=> $rs->count, > other => $self->blah, > }; > while ( my $rec = $rs->next ) { > my %fields = $self->get_important_values( $rec ); > push @{ $json->{data} }, { %fields ); > } > $c->stash( result => $json ); > > > > On Wed, Apr 25, 2012 at 8:26 AM, Roland Philibert > <rphilib...@aptina.com>wrote: > >> Hello all,**** >> >> I’d like to render some HTML content being formatted from a TT view via >> AJAX. >> Can anybody recommend a way to do that please?**** >> >> ** ** >> >> The method I am using now for AJAX is REST controller and JSON View.**** >> >> ** ** >> >> ...**** >> >> sub ajaxaction :Local :ActionClass('REST') {}**** >> >> ** ** >> >> sub ajaxaction _GET {**** >> >> ** ** >> >> my ($self, $c) = @_;**** >> >> my $rs = $c->model(DN)->resultset(Table)->find(...);**** >> >> my $body = >> $c->view(MYTT)->render($c,'dir/temp.mailtt',$c->stash( result => [ $rs ] >> )); ß this is the weird bit I guess.**** >> >> my @content =();**** >> >> push @content, $body;**** >> >> $self->status_ok(**** >> >> $c,**** >> >> entity => \@content,**** >> >> );**** >> >> }**** >> >> sub end :Private {**** >> >> my ($self, $c) = @_;**** >> >> $c->forward("View::JSON");**** >> >> }**** >> >> ** ** >> >> ..but doing this I get the error:**** >> >> ** ** >> >> Caught exception in MyApp::View::JSON->process "encountered object >> 'MyApp::Model::DB::Table=HASH(0xdb2c330)', but neither allow_blessed nor >> convert_blessed settings are enabled at (eval 1606) line 151."**** >> >> ** ** >> >> Thanks for your help.**** >> >> Roland**** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> ** ** >> >> Aptina (UK) Limited, Century Court, Millennium Way, Bracknell, Berkshire, >> RG12 2XT. Registered in England No. 06570543. >> >> This e-mail and any attachments contain confidential information and are >> solely for the review and use of the intended recipient. If you have >> received this e-mail in error, please notify the sender and destroy this >> e-mail and any copies. >> >> >> >> _______________________________________________ >> List: Catalyst@lists.scsys.co.uk >> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst >> Searchable archive: >> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ >> Dev site: http://dev.catalyst.perl.org/ >> >> > > > -- > "We act as though comfort and luxury were the chief requirements of life, > when all that we need to make us happy is something to be enthusiastic > about." -- Albert Einstein > > > _______________________________________________ > List: Catalyst@lists.scsys.co.uk > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst > Searchable archive: > http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ > Dev site: http://dev.catalyst.perl.org/ > >
_______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/