I/O: CDB: tied read-only access via CDB_File, JSON values
package Lingua::TT::CDBFile::JSON;
use Lingua::TT::CDBFile;
use Lingua::TT::Dict::JSON;
use JSON::XS;
use Carp;
use IO::File;
use strict;
##
=====================
## Globals & Constants
our @ISA = qw(Lingua::TT::CDBFile Lingua::TT::Dict::JSON);
##==============================================================================
## Constructo
## + %opts, %$doc:
## ##-- new options
## jxs => $jxs, ##-- underlying JSON::XS object; see jsonxs() method
## ##
## ##-- user options, inherited from TT::CDBFile
## file =>
ingua::TT::Dict::JSON.pm
## Author: Bryan Jurish <TT/IO.pm>
## Descript: TT Utils: dictionary: JSON
package Lingua::TT::Dict::JSON;
use Lingua::TT::Dict;
use Lingua::TT::IO;
use JSON::XS;
use Carp;
u
# + %opts, %$dict:
## dict => \%key2val, ##-- dict data; values are refs (encoded/decoded via JSON)
sub new {
my $that = shift;
return $that->SUPER::new(@_);
}
##=============================
ods: Access and Manipulation
## $jxs = $obj->jsonxs()
sub jsonxs {
return $_[0]{jxs} if (ref($_[0]) && defined($_[0]{jxs}));
return $_[0]{jxs} = JSON::XS->new->utf8(0)->allow_nonref;
}
##=======