Documentation

JsonParser
in package

Parser class

Example:

$parser = new JsonParser(); // returns null if it's valid json, or an error object $parser->lint($json); // returns parsed json, like json_decode does, but slower, throws exceptions on failure. $parser->parse($json);

Ported from https://github.com/zaach/jsonlint

Table of Contents

ALLOW_DUPLICATE_KEYS  = 2
DETECT_KEY_CONFLICTS  = 1
PARSE_TO_ASSOC  = 4
$defaultActions  : mixed
$flags  : mixed
$lexer  : mixed
$lstack  : mixed
$productions_  : mixed
$stack  : mixed
$symbols  : mixed
$table  : mixed
$terminals_  : mixed
$vstack  : mixed
lint()  : null|ParsingException
parse()  : mixed
parseError()  : mixed
failOnBOM()  : mixed
lex()  : mixed
performAction()  : mixed
popStack()  : mixed
stringInterpolation()  : mixed

Constants

ALLOW_DUPLICATE_KEYS

public mixed ALLOW_DUPLICATE_KEYS = 2

DETECT_KEY_CONFLICTS

public mixed DETECT_KEY_CONFLICTS = 1

Properties

$defaultActions

private mixed $defaultActions = array(16 => array(2, 6))

$productions_

private mixed $productions_ = array(0, array(3, 1), array(5, 1), array(7, 1), array(9, 1), array(9, 1), array(12, 2), array(13, 1), array(13, 1), array(13, 1), array(13, 1), array(13, 1), array(13, 1), array(15, 2), array(15, 3), array(20, 3), array(19, 1), array(19, 3), array(16, 2), array(16, 3), array(25, 1), array(25, 3))

$symbols

private mixed $symbols = array('error' => 2, 'JSONString' => 3, 'STRING' => 4, 'JSONNumber' => 5, 'NUMBER' => 6, 'JSONNullLiteral' => 7, 'NULL' => 8, 'JSONBooleanLiteral' => 9, 'TRUE' => 10, 'FALSE' => 11, 'JSONText' => 12, 'JSONValue' => 13, 'EOF' => 14, 'JSONObject' => 15, 'JSONArray' => 16, '{' => 17, '}' => 18, 'JSONMemberList' => 19, 'JSONMember' => 20, ':' => 21, ',' => 22, '[' => 23, ']' => 24, 'JSONElementList' => 25, '$accept' => 0, '$end' => 1)

$table

private mixed $table = array(array(3 => 5, 4 => array(1, 12), 5 => 6, 6 => array(1, 13), 7 => 3, 8 => array(1, 9), 9 => 4, 10 => array(1, 10), 11 => array(1, 11), 12 => 1, 13 => 2, 15 => 7, 16 => 8, 17 => array(1, 14), 23 => array(1, 15)), array(1 => array(3)), array(14 => array(1, 16)), array(14 => array(2, 7), 18 => array(2, 7), 22 => array(2, 7), 24 => array(2, 7)), array(14 => array(2, 8), 18 => array(2, 8), 22 => array(2, 8), 24 => array(2, 8)), array(14 => array(2, 9), 18 => array(2, 9), 22 => array(2, 9), 24 => array(2, 9)), array(14 => array(2, 10), 18 => array(2, 10), 22 => array(2, 10), 24 => array(2, 10)), array(14 => array(2, 11), 18 => array(2, 11), 22 => array(2, 11), 24 => array(2, 11)), array(14 => array(2, 12), 18 => array(2, 12), 22 => array(2, 12), 24 => array(2, 12)), array(14 => array(2, 3), 18 => array(2, 3), 22 => array(2, 3), 24 => array(2, 3)), array(14 => array(2, 4), 18 => array(2, 4), 22 => array(2, 4), 24 => array(2, 4)), array(14 => array(2, 5), 18 => array(2, 5), 22 => array(2, 5), 24 => array(2, 5)), array(14 => array(2, 1), 18 => array(2, 1), 21 => array(2, 1), 22 => array(2, 1), 24 => array(2, 1)), array(14 => array(2, 2), 18 => array(2, 2), 22 => array(2, 2), 24 => array(2, 2)), array(3 => 20, 4 => array(1, 12), 18 => array(1, 17), 19 => 18, 20 => 19), array(3 => 5, 4 => array(1, 12), 5 => 6, 6 => array(1, 13), 7 => 3, 8 => array(1, 9), 9 => 4, 10 => array(1, 10), 11 => array(1, 11), 13 => 23, 15 => 7, 16 => 8, 17 => array(1, 14), 23 => array(1, 15), 24 => array(1, 21), 25 => 22), array(1 => array(2, 6)), array(14 => array(2, 13), 18 => array(2, 13), 22 => array(2, 13), 24 => array(2, 13)), array(18 => array(1, 24), 22 => array(1, 25)), array(18 => array(2, 16), 22 => array(2, 16)), array(21 => array(1, 26)), array(14 => array(2, 18), 18 => array(2, 18), 22 => array(2, 18), 24 => array(2, 18)), array(22 => array(1, 28), 24 => array(1, 27)), array(22 => array(2, 20), 24 => array(2, 20)), array(14 => array(2, 14), 18 => array(2, 14), 22 => array(2, 14), 24 => array(2, 14)), array(3 => 20, 4 => array(1, 12), 20 => 29), array(3 => 5, 4 => array(1, 12), 5 => 6, 6 => array(1, 13), 7 => 3, 8 => array(1, 9), 9 => 4, 10 => array(1, 10), 11 => array(1, 11), 13 => 30, 15 => 7, 16 => 8, 17 => array(1, 14), 23 => array(1, 15)), array(14 => array(2, 19), 18 => array(2, 19), 22 => array(2, 19), 24 => array(2, 19)), array(3 => 5, 4 => array(1, 12), 5 => 6, 6 => array(1, 13), 7 => 3, 8 => array(1, 9), 9 => 4, 10 => array(1, 10), 11 => array(1, 11), 13 => 31, 15 => 7, 16 => 8, 17 => array(1, 14), 23 => array(1, 15)), array(18 => array(2, 17), 22 => array(2, 17)), array(18 => array(2, 15), 22 => array(2, 15)), array(22 => array(2, 21), 24 => array(2, 21)))

$terminals_

private mixed $terminals_ = array(2 => "error", 4 => "STRING", 6 => "NUMBER", 8 => "NULL", 10 => "TRUE", 11 => "FALSE", 14 => "EOF", 17 => "{", 18 => "}", 21 => ":", 22 => ",", 23 => "[", 24 => "]")

Methods

lint()

public lint(string $input, int $flags) : null|ParsingException
Parameters
$input : string

JSON string

$flags : int

Bitmask of parse/lint options (see constants of this class)

Return values
null|ParsingException

null if no error is found, a ParsingException containing all details otherwise

parse()

public parse(string $input, int $flags) : mixed
Parameters
$input : string

JSON string

$flags : int

Bitmask of parse/lint options (see constants of this class)

Tags
throws
ParsingException
Return values
mixed

parseError()

protected parseError(mixed $str, mixed $hash) : mixed
Parameters
$str : mixed
$hash : mixed
Return values
mixed

failOnBOM()

private failOnBOM(mixed $input) : mixed
Parameters
$input : mixed
Return values
mixed

lex()

private lex() : mixed
Return values
mixed

performAction()

private performAction(stdClass $yyval, mixed $yytext, mixed $yyleng, mixed $yylineno, mixed $yystate, mixed &$tokens) : mixed
Parameters
$yyval : stdClass
$yytext : mixed
$yyleng : mixed
$yylineno : mixed
$yystate : mixed
$tokens : mixed
Return values
mixed

popStack()

private popStack(mixed $n) : mixed
Parameters
$n : mixed
Return values
mixed

stringInterpolation()

private stringInterpolation(mixed $match) : mixed
Parameters
$match : mixed
Return values
mixed

Search results