.. _api-zoo-format-json:

ZOO.Format.JSON
===============

A parser to read/write JSON safely.

Properties	
----------

.. list-table::
   :widths: 12 50
   :header-rows: 1

   * - NAME
     - DESCRIPTION
   * - :ref:`indent <indent>`
     - {String} For "pretty" printing, the indent string will be used once for each indentation level.
   * - :ref:`space <space>`
     - {String} For "pretty" printing, the space string will be used after the ":" separating a name/value pair.
   * - :ref:`newline <newline>`
     - {String} For "pretty" printing, the newline string will be used at the end of each name/value pair or array item.
   * - :ref:`level <level>`
     - {Integer} For "pretty" printing, this is incremented/decremented during serialization.  
   * - :ref:`pretty <pretty>`
     - {Boolean} Serialize with extra whitespace for structure.    
     
Functions	
---------

.. list-table::
   :widths: 14 50
   :header-rows: 1

   * - NAME
     - DESCRIPTION
   * - :ref:`ZOO.Format.JSON <ZOO.Format.JSON>`
     - Create a new parser for JSON.
   * - :ref:`read <read>`
     - Deserialize a json string.
   * - :ref:`write <write>`
     - Serialize an object into a JSON string.
   * - :ref:`writeIndent <writeIndent>`
     - Output an indentation string depending on the indentation level.  
   * - :ref:`writeNewline <writeNewline>`
     - Output a string representing a newline if in pretty printing mode.   
   * - :ref:`writeSpace <writeSpace>`
     - Output a string representing a space if in pretty printing mode. 
     
Serialize Properties	
--------------------

.. list-table::
   :widths: 14 50
   :header-rows: 1

   * - NAME
     - DESCRIPTION
   * - :ref:`serialize <serialize>`
     - Object with properties corresponding to the serializable data types. 
     
Serialize Functions	
-------------------

.. list-table::
   :widths: 14 50
   :header-rows: 1

   * - NAME
     - DESCRIPTION
   * - :ref:`serialize.object <serialize.object>`
     - Transform an object into a JSON string.
   * - :ref:`serialize.array <serialize.array>`
     - Transform an array into a JSON string.
   * - :ref:`serialize.string <serialize.string>`
     - Transform a string into a JSON string.
   * - :ref:`serialize.number <serialize.number>`
     - Transform a number into a JSON string.  
   * - :ref:`serialize.boolean <serialize.boolean>`
     - Transform a boolean into a JSON string.   
   * - :ref:`serialize.date <serialize.date>`
     - Transform a date into a JSON string.     
       
**Properties**

.. _indent:   

indent	
  {String} For "pretty" printing, the indent string will be used once for each indentation level.
  
.. _space:     
  
space	
  {String} For "pretty" printing, the space string will be used after the ":" separating a name/value pair.
  
.. _newline:       
  
newline	
  {String} For "pretty" printing, the newline string will be used at the end of each name/value pair or array item.
  
.. _level:        
  
level	
  {Integer} For "pretty" printing, this is incremented/decremented during serialization.
  
.. _pretty:          
  
pretty	
  {Boolean} Serialize with extra whitespace for structure.
  
**Functions**

.. _ZOO.Format.JSON:          

ZOO.Format.JSON	
  Create a new parser for JSON.
  
.. _read:            
  
read	
  Deserialize a json string.
  
.. _write:              
  
write	
  Serialize an object into a JSON string.
  
.. _writeIndent:               
  
writeIndent	
  Output an indentation string depending on the indentation level.
  
.. _writeNewline:               
  
writeNewline	
  Output a string representing a newline if in pretty printing mode.
  
.. _writeSpace:               
  
writeSpace	
  Output a string representing a space if in pretty printing mode.
  
**Serialize Properties**

.. _serialize:               

serialize	
  Object with properties corresponding to the serializable data types.
  
**Serialize Functions**

.. _serialize.object:               

serialize.object	
  Transform an object into a JSON string.
  
.. _serialize.array:                 
  
serialize.array	
  Transform an array into a JSON string.
  
.. _serialize.string:                   
  
serialize.string	
  Transform a string into a JSON string.
  
.. _serialize.number:                     
  
serialize.number	
  Transform a number into a JSON string.
  
.. _serialize.boolean:                       
  
serialize.boolean	
  Transform a boolean into a JSON string.
  
.. _serialize.date:                         
  
serialize.date	
  Transform a date into a JSON string.