protect hash keys by quoting
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 25 Aug 2005 21:34:25 +0000 (21:34 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 25 Aug 2005 21:34:25 +0000 (21:34 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@1747 dcc99617-32d9-48b4-a31d-7c20da2025e4

OpenSRF/src/perlmods/JSON.pm

index 8ec0c4c..ad8f6e5 100644 (file)
@@ -194,17 +194,18 @@ sub perl2JSON {
                $output .= '{';
                my $c = 0;
                for my $key (sort keys %$perl) {
+                       my $outkey = $key;
                        $output .= ',' if ($c); 
 
-                       $key =~ s{\\}{\\\\}sgo;
-                       $key =~ s/"/\\"/sgo;
-                       $key =~ s/\t/\\t/sgo;
-                       $key =~ s/\f/\\f/sgo;
-                       $key =~ s/\r/\\r/sgo;
-                       $key =~ s/\n/\\n/sgo;
-                       $key =~ s/(\pM)/sprintf('\u%0.4x',ord($1))/sgoe;
+                       $outkey =~ s{\\}{\\\\}sgo;
+                       $outkey =~ s/"/\\"/sgo;
+                       $outkey =~ s/\t/\\t/sgo;
+                       $outkey =~ s/\f/\\f/sgo;
+                       $outkey =~ s/\r/\\r/sgo;
+                       $outkey =~ s/\n/\\n/sgo;
+                       $outkey =~ s/(\pM)/sprintf('\u%0.4x',ord($1))/sgoe;
 
-                       $output .= '"'.$key.'":'.key2JSON(undef,$$perl{$key}, $strict);
+                       $output .= '"'.$outkey.'":'.key2JSON(undef,$$perl{$key}, $strict);
                        $c++;
                }
                $output .= '}';