| PerlIO-via-json documentation | Contained in the PerlIO-via-json distribution. |
PerlIO::via::json - PerlIO layer to convert to and from JSON
use PerlIO::via::json;
open my $fh, '<:via(json)', 'file.xml' or die "...: $!";
my $json = <$fh>;
open my $fh, '>:via(json)', 'file.xml' or die "...: $!";
print $fh '{"key":"value"}';
This module implements a PerlIO layer that converts a file to or from JSON format.
In fact, it currently only supports converting between XML and JSON, but hopefully it will eventually support formats other than XML. Any suggestions?
Note: The XML<->JSON conversion relies on XML::XML2JSON. The XML file will be slurped and parsed all at once.
Note: this is only version 0.01, eh?
Scott Lanning <slanning@cpan.org>.
Ideas and/or code taken freely from other PerlIO::via modules, particularly those of Elizabeth Mattijsen (esp. PerlIO::via::QuotedPrint).
Copyright 2009, Scott Lanning. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| PerlIO-via-json documentation | Contained in the PerlIO-via-json distribution. |
package PerlIO::via::json; use 5.008001; use strict; use warnings; our $VERSION = '0.01'; use XML::XML2JSON; ### PerlIO::via interface sub PUSHED { bless { obj => XML::XML2JSON->new() }, $_[0]; } sub FILL { my ($self, $fh) = @_; local $/; my $t = <$fh>; (defined $t) ? $self->{obj}->xml2json($t) : undef; } sub WRITE { my ($self, $buf, $fh) = @_; if (print $fh $self->{obj}->json2xml($buf)) { return length($buf); } else { return -1; } } 1; __END__