Package gozerbot :: Package contrib :: Package simplejson :: Module decoder :: Class JSONDecoder
[hide private]
[frames] | no frames]

Class JSONDecoder

source code

object --+
         |
        JSONDecoder

Simple JSON <http://json.org> decoder

Performs the following translations in decoding by default:

+---------------+-------------------+ | JSON | Python | +===============+===================+ | object | dict | +---------------+-------------------+ | array | list | +---------------+-------------------+ | string | unicode | +---------------+-------------------+ | number (int) | int, long | +---------------+-------------------+ | number (real) | float | +---------------+-------------------+ | true | True | +---------------+-------------------+ | false | False | +---------------+-------------------+ | null | None | +---------------+-------------------+

It also understands ``NaN``, ``Infinity``, and ``-Infinity`` as their corresponding ``float`` values, which is outside the JSON spec.

Instance Methods [hide private]
 
__init__(self, encoding=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None)
``encoding`` determines the encoding used to interpret any ``str`` objects decoded by this instance (utf-8 by default).
source code
 
decode(self, s, _w=<built-in method match of _sre.SRE_Pattern object at 0x8f29a70>)
Return the Python representation of ``s`` (a ``str`` or ``unicode`` instance containing a JSON document)
source code
 
raw_decode(self, s, **kw)
Decode a JSON document from ``s`` (a ``str`` or ``unicode`` beginning with a JSON document) and return a 2-tuple of the Python representation and the index in ``s`` where the document ended.
source code

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Class Variables [hide private]
  _scanner = Scanner(ANYTHING)
  __all__ = ['__init__', 'decode', 'raw_decode']
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, encoding=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None)
(Constructor)

source code 

``encoding`` determines the encoding used to interpret any ``str`` objects decoded by this instance (utf-8 by default). It has no effect when decoding ``unicode`` objects.

Note that currently only encodings that are a superset of ASCII work, strings of other encodings should be passed in as ``unicode``.

``object_hook``, if specified, will be called with the result of every JSON object decoded and its return value will be used in place of the given ``dict``. This can be used to provide custom deserializations (e.g. to support JSON-RPC class hinting).

``parse_float``, if specified, will be called with the string of every JSON float to be decoded. By default this is equivalent to float(num_str). This can be used to use another datatype or parser for JSON floats (e.g. decimal.Decimal).

``parse_int``, if specified, will be called with the string of every JSON int to be decoded. By default this is equivalent to int(num_str). This can be used to use another datatype or parser for JSON integers (e.g. float).

``parse_constant``, if specified, will be called with one of the following strings: -Infinity, Infinity, NaN, null, true, false. This can be used to raise an exception if invalid JSON numbers are encountered.

Overrides: object.__init__

raw_decode(self, s, **kw)

source code 

Decode a JSON document from ``s`` (a ``str`` or ``unicode`` beginning with a JSON document) and return a 2-tuple of the Python representation and the index in ``s`` where the document ended.

This can be used to decode a JSON document from a string that may have extraneous data at the end.