0.60 release branch
[catagits/Catalyst-Action-REST.git] / lib / Catalyst / Action / Deserialize / JSON.pm
CommitLineData
e601adda 1#
2# Catlyst::Action::Deserialize::JSON.pm
3# Created by: Adam Jacob, Marchex, <adam@marchex.com>
4# Created on: 10/12/2006 03:00:32 PM PDT
5#
6# $Id$
7
8package Catalyst::Action::Deserialize::JSON;
9
10use strict;
11use warnings;
12
13use base 'Catalyst::Action';
14use JSON::Syck;
15
16sub execute {
17 my $self = shift;
18 my ( $controller, $c, $test ) = @_;
19
20 my $body = $c->request->body;
21 if ($body) {
22 my $rdata;
23 my $rbody;
24 while (my $line = <$body>) {
25 $rbody .= $line;
26 }
27 eval {
28 $rdata = JSON::Syck::Load( $rbody );
29 };
30 if ($@) {
31 return $@;
32 }
33 $c->request->data($rdata);
34 } else {
35 $c->log->debug(
36 'I would have deserialized, but there was nothing in the body!');
37 }
38 return 1;
39}
40
411;