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
PARSE_TO_ASSOC
public
mixed
PARSE_TO_ASSOC
= 4
Properties
$defaultActions
private
mixed
$defaultActions
= array(16 => array(2, 6))
$flags
private
mixed
$flags
$lexer
private
mixed
$lexer
$lstack
private
mixed
$lstack
$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))
$stack
private
mixed
$stack
$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 => "]")
$vstack
private
mixed
$vstack
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
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