NAME
DTA::CAB::Format::JSON - Datum parser|formatter: JSON code via JSON::XS
SYNOPSIS
use DTA::CAB::Format::JSON;
$fmt = DTA::CAB::Format::JSON->new(%args);
##========================================================================
## Methods: Input
$fmt = $fmt->parseJsonString($str);   ##-- guts
$doc = $fmt->parseDocument();
##========================================================================
## Methods: Output
$fmt = $fmt->toFh($fh);
$fmt = $fmt->putToken($tok);
$fmt = $fmt->putSentence($sent);
$fmt = $fmt->putDocument($doc);
DESCRIPTION
DTA::CAB::Format::JSON::XS is a DTA::CAB::Format datum parser/formatter which reads & writes data as JSON::XS code using the JSON::XS module.
Globals
- Variable: @ISA
 - 
DTA::CAB::Format::JSON inherits from DTA::CAB::Format.
 - Filenames
 - 
DTA::CAB::Format::JSON registers the filename regex:
/\.(?i:json(?:[\.\-\_]xs)?)$/with DTA::CAB::Format.
 
Constructors etc.
- new
 - 
$fmt = CLASS_OR_OBJ->new(%args);Constructor.
%args, %$fmt:
##---- Input doc => $doc, ##-- buffered input document ## ##---- INHERITED from DTA::CAB::Format #utf8 => $bool, ##-- output is always UTF-8 level => $formatLevel, ##-- sets $jsonxs->pretty() level 
Methods: Persistence
- noSaveKeys
 - 
@keys = $class_or_obj->noSaveKeys();Override returns list of keys not to be saved. This implementation returns
qw(doc outbuf). 
Methods: Input
- iolayers
 - 
$fmt = $fmt->iolayers()Override always returns ':raw'.
 - fromString
 - 
$fmt = $fmt->fromString(\$string)Override: select input from the string $string.
 - fromFh($fh)
 - 
$fmt = $fmt->fromFh($fh)Override calls $fmt->fromFh_str().
 - parseJsonString
 - 
$fmt = $fmt->parseJsonString($str);Evaluates $str as JSON code, which is expected to return a DTA::CAB::Document object (or something which can be massaged into one), and sets $fmt->{doc} to this new document object.
 - parseDocument
 - 
$doc = $fmt->parseDocument();Returns the current contents of $fmt->{doc}, e.g. the most recently parsed document.
 
Methods: Output
- toFh
 - 
$fmt = $fmt->toFh($fh) $fmt = $fmt->toFh($fh, $formatLevel)Override: select output to filehandle $fh. Creates and caches $fmt->{jxs} as a side effect.
 - putToken
 - 
$fmt = $fmt->putToken($tok);Override: writes a token to the output buffer (non-destructive on $tok).
 - putSentence
 - 
$fmt = $fmt->putSentence($sent);Override: write a sentence to the outupt buffer (non-destructive on $sent).
 - putDocument
 - 
$fmt = $fmt->putDocument($doc);Override: write a document to the outupt buffer (non-destructive on $doc).
 
EXAMPLE
An example file in the format accepted/generated by this module is:
{
   "body" : [
      {
         "tokens" : [
            {
               "moot" : {
                  "tag" : "PWAV",
                  "word" : "wie",
                  "lemma" : "wie"
               },
               "lang" : [
                  "de"
               ],
               "msafe" : "1",
               "errid" : "ec",
               "exlex" : "wie",
               "text" : "wie",
               "hasmorph" : "1",
               "xlit" : {
                  "latin1Text" : "wie",
                  "isLatinExt" : "1",
                  "isLatin1" : "1"
               }
            },
            {
               "text" : "oede",
               "msafe" : "0",
               "moot" : {
                  "lemma" : "öde",
                  "tag" : "ADJD",
                  "word" : "öde"
               },
               "xlit" : {
                  "isLatin1" : "1",
                  "latin1Text" : "oede",
                  "isLatinExt" : "1"
               }
            },
            {
               "text" : "!",
               "errid" : "ec",
               "exlex" : "!",
               "xlit" : {
                  "isLatinExt" : "1",
                  "latin1Text" : "!",
                  "isLatin1" : "1"
               },
               "moot" : {
                  "lemma" : "!",
                  "tag" : "$.",
                  "word" : "!"
               },
               "msafe" : "1"
            }
         ],
         "lang" : "de"
      }
   ]
}
AUTHOR
Bryan Jurish <moocow@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2010-2019 by Bryan Jurish
This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.24.1 or, at your option, any later version of Perl 5 you may have available.