123456789_123456789_123456789_123456789_123456789_

Class: JSON::Ext::Parser

Relationships & Source Files
Inherits: Object
Defined in: ext/json/parser/parser.c,
ext/json/parser/parser.c

Overview

This is the ::JSON parser implemented as a C extension. It can be configured to be used by setting

JSON.parser = JSON::Ext::Parser

with the method parser= in ::JSON.

Class Method Summary

Instance Attribute Summary

  • #quirks_mode? readonly

    Returns a true, if this parser is in quirks_mode, false otherwise.

Instance Method Summary

  • #parse

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

  • #source

    Returns a copy of the current source string, that was used to construct this Parser.

Constructor Details

.new(source, opts) ⇒ {}

Creates a new Parser instance for the string source.

Creates a new Parser instance for the string source.

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

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 100.

  • 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.

  • symbolize_names: If set to true, returns symbols for the names (keys) in a JSON object. Otherwise strings are returned, which is also the default.

  • create_additions: If set to false, the Parser doesn't create additions even if a matching class and create_id was found. This option defaults to false.

  • object_class: Defaults to Hash

  • array_class: Defaults to Array

Instance Attribute Details

#quirks_mode? (readonly)

Returns a true, if this parser is in quirks_mode, false otherwise.

Instance Method Details

#parse

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

#source

Returns a copy of the current source string, that was used to construct this Parser.