changes file updated
[p5sagit/Config-Any.git] / lib / Config / Any / JSON.pm
index 18b201f..6c6eb6e 100644 (file)
@@ -50,13 +50,27 @@ sub load {
     eval { require JSON::Syck; };
     if ( $@ ) {
         require JSON;
-        return JSON::jsonToObj( $content );
+        eval { JSON->VERSION( 2 ); };
+        return $@ ? JSON::jsonToObj( $content ) : JSON::from_json( $content );
     }
     else {
         return JSON::Syck::Load( $content );
     }
 }
 
+=head2 is_supported( )
+
+Returns true if either L<JSON::Syck> or L<JSON> is available.
+
+=cut
+
+sub is_supported {
+    eval { require JSON::Syck; };
+    return 1 unless $@;
+    eval { require JSON; };
+    return $@ ? 0 : 1;
+}
+
 =head1 AUTHOR
 
 Brian Cassidy E<lt>bricas@cpan.orgE<gt>