JSON::Relaxed::ErrorCodes -- Error messages
If the document cannot be parsed, JSON::Relaxed will normally throw an exception.
In legacy mode, JSON::Relaxed returns an undefined value instead and sets the following error indicators:
$JSON::Relaxed::err_id
A unique code for a specific error.
$JSON::Relaxed::err_msg
An English description of the error, including an indication where the error occurs.
When using object-oriented mode, these can be easily retrieved using the parser methods err_id() and err_msg().
Following is a list of all error codes in JSON::Relaxed:
missing-inputNo input was found. This can be caused by:
$parser->decode() $parser->decode(undef)empty-inputThe string to be parsed has no content beside whitespace and comments.
$parser->decode('') $parser->decode(' ') $parser->decode('/* whatever */')unclosed-inline-commentA comment was started with /* but was never closed. For example:
$parser->decode('/*')invalid-structure-opening-characterThe document opens with an invalid structural character like a comma or colon. The following examples would trigger this error.
$parser->decode(':') $parser->decode(',') $parser->decode('}') $parser->decode(']')multiple-structuresThe document has multiple structures. JSON and RJSON only allow a document to consist of a single hash, a single array, or a single string. The following examples would trigger this error.
$parse->decode('{}[]') $parse->decode('{} "whatever"') $parse->decode('"abc" "def"')unknown-token-after-keyA hash key may only be followed by the closing hash brace or a colon. Anything else triggers
unknown-token-after-key. So, the following examples would trigger this error.$parse->decode("{a [ }") } $parse->decode("{a b") }unknown-token-for-hash-keyThe parser encountered something besides a string where a hash key should be. The following are examples of code that would trigger this error.
$parse->decode('{{}}') $parse->decode('{[]}') $parse->decode('{]}') $parse->decode('{:}')unclosed-hash-braceA hash has an opening brace but no closing brace. For example:
$parse->decode('{x:1')unclosed-array-braceAn array has an opening brace but not a closing brace. For example:
$parse->decode('["x", "y"')unexpected-token-after-colonIn a hash, a colon must be followed by a value. Anything else triggers this error. For example:
$parse->decode('{"a":,}') $parse->decode('{"a":}')missing-comma-between-array-elementsIn an array, a comma must be followed by a value, another comma, or the closing array brace. Anything else triggers this error. For example:
$parse->decode('[ "x" "y" ]') $parse->decode('[ "x" : ]')unknown-array-tokenThis error exists just in case there's an invalid token in an array that somehow wasn't caught by
missing-comma-between-array-elements. This error shouldn't ever be triggered. If it is please let me know.unclosed-quoteThis error is triggered when a quote isn't closed. For example:
$parse->decode("'whatever") $parse->decode('"whatever') }