Class: JSON::Pure::Parser

Class | JSON::Pure::Parser
In: | lib/json/pure/parser.rb
Parent: | StringScanner

This class implements the JSON parser that is used to parse a JSON string into a Ruby data structure.

### Methods

new parse

### Constants

STRING | = | /" ((?:[^\x0-\x1f"\\] | \\["\\\/bfnrt] | \\u[0-9a-fA-F]{4} | \\[\x20-\xff])*) "/nx
INTEGER | = | /(-?0|-?[1-9]\d*)/
FLOAT | = | /(-? (?:0|[1-9]\d*) (?: \.\d+(?i:e[+-]?\d+) | \.\d+ | (?i:e[+-]?\d+) ) )/x
NAN | = | /NaN/
INFINITY | = | /Infinity/
MINUS_INFINITY | = | /-Infinity/
OBJECT_OPEN | = | /\{/
OBJECT_CLOSE | = | /\}/
ARRAY_OPEN | = | /\[/
ARRAY_CLOSE | = | /\]/
PAIR_DELIMITER | = | /:/
COLLECTION_DELIMITER | = | /,/
TRUE | = | /true/
FALSE | = | /false/
NULL | = | /null/
IGNORE | = | %r( (?: //[^\n\r]*[\n\r]| # line comments /\* # c-style comments (?: [^*/]| # normal chars /[^*]| # slashes that do not start a nested comment \*[^/]| # asterisks that do not end this comment /(?=\*/) # single slash before this comment's end )* \*/ # the End of this comment |[ \t\r\n]+ # whitespaces: space, horicontal tab, lf, cr )+ )mx
UNPARSED | = | Object.new
UNESCAPE_MAP | = | Hash.new { |h, k| h[k] = k.chr } |  | Unescape characters in strings.

### External Aliases

string | -> | source

### Public Class methods

new(source, opts = {})

Creates a new JSON::Pure::Parser instance for the string source.

It will be configured by the opts hash. opts can have the following keys:

- max_nesting: The maximum depth of nesting allowed in the parsed data structures. Disable depth checking with :max_nesting => false|nil|0, it defaults to 19.
- allow_nan: If set to true, allow NaN, Infinity and -Infinity in defiance of RFC 4627 to be parsed by the Parser. This option defaults to false.
- create_additions: If set to false, the Parser doesn‘t create additions even if a matchin class and create_id was found. This option defaults to true.

### Public Instance methods

parse()

Parses the current JSON string source and returns the complete data structure as a result.

[Validate]