}
# Try to find a child object which is available and return that.
- #
+
+ # See if videosite::JSJSONArrayParser is available
+ eval {
+ require videosite::JSJSONArrayParser;
+ };
+
+ unless($@) {
+ # Available. Return a JSJSONArrayParser object
+ return videosite::JSJSONArrayParser->new(%params);
+ }
+
# See if videosite::JSLexArrayParser is available
eval {
require videosite::JSLexArrayParser;
--- /dev/null
+#
+# A helper class for parsing textual JS hashes into perl
+# hashes
+#
+# This parser is based on the perl JSON module
+#
+
+package videosite::JSJSONArrayParser;
+
+use videosite::JSArrayParser;
+use JSON;
+@ISA = qw(videosite::JSArrayParser);
+
+use strict;
+
+sub new {
+ my $class = shift;
+ my $self = $class->SUPER::new();
+
+ return bless($self, $class);
+}
+
+sub parse {
+ my $self = shift;
+ my $s = shift;
+
+ return decode_json($s);
+}
+
+1;