NAME
MarpaX::ESLIF::JSON::Decoder - ESLIF's JSON decoder interface
VERSION
version 6.0.33.1
DESCRIPTION
This is JSON's strict and relax decoder writen directly in MarpaX::ESLIF library.
There are two JSON modes:
- Strict
-
Encoder and decoder are strict, as per ECMA-404 The JSON Data Interchange Standard.
- Relax
-
This is strict grammar extended with:
METHODS
MarpaX::ESLIF::JSON::Decoder->new($eslif[, $strict])
my $eslifJSONDecoder = MarpaX::ESLIF::JSON::Decoder->new($eslif);
Returns a JSON grammar instance, noted $eslifJSONDecoder
later. Parameters are:
$eslif
-
MarpaX::ESLIF object instance. Required.
$strict
-
A true value means strict JSON, else relax JSON. Default is a true value.
$eslifJSONDecoder->decode($string, %options)
my $value = $eslifJSONDecoder->decode($string);
Returns a value containing decoded $string
. In relax mode, special floating point are supported:
+Infinity
-
Positive infinity, either as a native floating point number if the underlying system supports that, or as a
Math::BigInt->binf()
instance. -Infinity
-
Negative infinity, either as a native floating point number if the underlying system supports that, or as a
Math::BigInt->binf('-')
instance. NaN
-
Not-a-Number, either as a native floating point number if the underlying system supports that, or as a
Math::BigInt->bnan()
instance.
Supported options are:
- encoding
-
Input encoding. Can be
undef
. - disallowDupkeys
-
A true value will disallow duplicate keys. Default is a false value.
- maxDepth
-
Maximum depth. Default is 0, meaning no limit.
- noReplacementCharacter
-
A true value will disallow UTF-8 replacement character for invalid UTF-16 surrogates. Default is a false value.
NOTES
Formally, the JSON implementation is only a grammar coded directly in the ESLIF library, therefore this module inherits from MarpaX::ESLIF::Grammar.
AUTHOR
Jean-Damien Durand <jeandamiendurand@free.fr>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Jean-Damien Durand.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.