Class Services_JSON

Description

Converts to and from JSON format.

Brief example of use:

  1.  // create a new instance of Services_JSON
  2.  $json new Services_JSON();
  3.  
  4.  // convert a complexe value to JSON notation, and send it to the browser
  5.  $value array('foo''bar'array(12'baz')array(3array(4)));
  6.  $output $json->encode($value);
  7.  
  8.  print($output);
  9.  // prints: ["foo","bar",[1,2,"baz"],[3,[4]]]
  10.  
  11.  // accept incoming POST data, assumed to be in JSON notation
  12.  $input file_get_contents('php://input'1000000);
  13.  $value $json->decode($input);

Located in /common/Services_JSON.phpclass (line 114)


	
			
Variable Summary
 static mixed $myInstance
 mixed $use
Method Summary
 static void &getInstance ([ $use = 0])
 Services_JSON Services_JSON ([int $use = 0])
 mixed decode (string $str)
 mixed encode (mixed $var)
 void isError ( $data, [ $code = null])
 string name_value (string $name, mixed $value)
 string reduce_string ($str $str)
 void setUse (int $use)
 string utf82utf16 (string $utf8)
 string utf162utf8 (string $utf16)
Variables
static mixed $myInstance = null (line 126)

* class vars ------------------------------------------------------

  • access: protected
mixed $use = 0 (line 138)

* attributes --------------------------------------------------

  • access: protected
Methods
static getInstance (line 144)
  • access: public
void &getInstance ([ $use = 0])
  • $use
Constructor Services_JSON (line 171)

constructs a new JSON instance

Services_JSON Services_JSON ([int $use = 0])
  • int $use:

    object behavior flags; combine with boolean-OR

    possible values:

    • SERVICES_JSON_LOOSE_TYPE: loose typing. "{...}" syntax creates associative arrays instead of objects in decode().
    • SERVICES_JSON_SUPPRESS_ERRORS: error suppression. Values which can't be encoded (e.g. resources) appear as NULL instead of throwing errors. By default, a deeply-nested resource will bubble up with an error, so all return values from encode() should be checked with isError()

decode (line 530)

decodes a JSON string into appropriate variable

  • return: number, boolean, string, array, or object corresponding to given JSON input string. See argument 1 to Services_JSON() above for object-output behavior. Note that decode() always returns strings in ASCII or UTF-8 format!
  • access: public
mixed decode (string $str)
  • string $str: JSON-formatted string
encode (line 287)

encodes an arbitrary variable into JSON format

  • return: JSON string representation of input var or an error if a problem occurs
  • access: public
mixed encode (mixed $var)
  • mixed $var: any number, boolean, string, array, or object to be encoded. see argument 1 to Services_JSON() above for array-parsing behavior. if var is a strng, note that encode() always expects it to be in ASCII or UTF-8 format!
isError (line 807)
  • todo: Ultimately, this should just call PEAR::isError()
void isError ( $data, [ $code = null])
  • $data
  • $code
name_value (line 481)

array-walking function for use in generating JSON-formatted name-value pairs

  • return: JSON-formatted name-value pair, like '"name":value'
  • access: private
string name_value (string $name, mixed $value)
  • string $name: name of key to use
  • mixed $value: reference to an array element to be encoded
reduce_string (line 499)

reduce a string by removing leading and trailing comments and whitespace

  • return: string value stripped of comments and whitespace
  • access: private
string reduce_string ($str $str)
  • $str $str: string string value to strip of comments and whitespace
setUse (line 185)

sets use

  • access: public
void setUse (int $use)
  • int $use
utf82utf16 (line 244)

convert a string from one UTF-8 char to one UTF-16 char

Normally should be handled by mb_convert_encoding, but provides a slower PHP-only method for installations that lack the multibye string extension.

  • return: UTF-16 character
  • access: private
string utf82utf16 (string $utf8)
  • string $utf8: UTF-8 character
utf162utf8 (line 201)

convert a string from one UTF-16 char to one UTF-8 char

Normally should be handled by mb_convert_encoding, but provides a slower PHP-only method for installations that lack the multibye string extension.

  • return: UTF-8 character
  • access: private
string utf162utf8 (string $utf16)
  • string $utf16: UTF-16 character

Documentation generated on Thu, 08 Jan 2009 17:48:29 +0100 by phpDocumentor 1.4.0a2