Version 0.87
[catagits/Catalyst-Action-REST.git] / lib / Catalyst / Action / Deserialize / JSON.pm
index 01059aa..75a168b 100644 (file)
@@ -1,10 +1,13 @@
 package Catalyst::Action::Deserialize::JSON;
 
-use strict;
-use warnings;
+use Moose;
+use namespace::autoclean;
 
-use base 'Catalyst::Action';
-use JSON qw( decode_json );
+extends 'Catalyst::Action';
+use JSON;
+
+our $VERSION = '0.87';
+$VERSION = eval $VERSION;
 
 sub execute {
     my $self = shift;
@@ -20,7 +23,13 @@ sub execute {
     }
 
     if ( $rbody ) {
-        my $rdata = eval { decode_json( $rbody ) };
+        my $json = JSON->new->utf8;
+        if (my $options = $controller->{json_options}) {
+            foreach my $opt (keys %$options) {
+                $json->$opt( $options->{$opt} );
+            }
+        }
+        my $rdata = eval { $json->decode( $rbody ) };
         if ($@) {
             return $@;
         }