C# Class Playtomic.JSON

This class encodes and decodes JSON strings. Spec. details, see http://www.json.org/ JSON uses Arrays and Objects. These correspond here to the datatypes ArrayList and Hashtable. All numbers are parsed to doubles.
Show file Open project: playtomic/gameapi-csharp

Protected Properties

Property Type Description
lastDecode string
lastErrorIndex int

Public Methods

Method Description
GetLastErrorIndex ( ) : int

On decoding, this function returns the position at which the parse failed (-1 = no error).

GetLastErrorSnippet ( ) : string

If a decoding error occurred, this function returns a piece of the JSON string at which the error took place. To ease debugging.

JsonDecode ( string json ) : object

Parses the string json into a value

JsonEncode ( object json ) : string

Converts a Hashtable / ArrayList object into a JSON string

LastDecodeSuccessful ( ) : bool

On decoding, this function returns the position at which the parse failed (-1 = no error).

Protected Methods

Method Description
EatWhitespace ( char json, int &index ) : void
GetLastIndexOfNumber ( char json, int index ) : int
IsNumeric ( object o ) : bool

Determines if a given object is numeric in any way (can be integer, double, etc). C# has no pretty way to do this.

LookAhead ( char json, int index ) : int
NextToken ( char json, int &index ) : int
ParseArray ( char json, int &index ) : ArrayList
ParseNumber ( char json, int &index ) : double
ParseObject ( char json, int &index ) : Hashtable
ParseString ( char json, int &index ) : string
ParseValue ( char json, int &index, bool &success ) : object
SerializeArray ( ArrayList anArray, StringBuilder builder ) : bool
SerializeNumber ( double number, StringBuilder builder ) : void
SerializeObject ( Hashtable anObject, StringBuilder builder ) : bool
SerializeObjectOrArray ( object objectOrArray, StringBuilder builder ) : bool
SerializeString ( string aString, StringBuilder builder ) : void
SerializeValue ( object value, StringBuilder builder ) : bool

Method Details

EatWhitespace() protected method

protected EatWhitespace ( char json, int &index ) : void
json char
index int
return void

GetLastErrorIndex() public static method

On decoding, this function returns the position at which the parse failed (-1 = no error).
public static GetLastErrorIndex ( ) : int
return int

GetLastErrorSnippet() public static method

If a decoding error occurred, this function returns a piece of the JSON string at which the error took place. To ease debugging.
public static GetLastErrorSnippet ( ) : string
return string

GetLastIndexOfNumber() protected method

protected GetLastIndexOfNumber ( char json, int index ) : int
json char
index int
return int

IsNumeric() protected method

Determines if a given object is numeric in any way (can be integer, double, etc). C# has no pretty way to do this.
protected IsNumeric ( object o ) : bool
o object
return bool

JsonDecode() public static method

Parses the string json into a value
public static JsonDecode ( string json ) : object
json string A JSON string.
return object

JsonEncode() public static method

Converts a Hashtable / ArrayList object into a JSON string
public static JsonEncode ( object json ) : string
json object A Hashtable / ArrayList
return string

LastDecodeSuccessful() public static method

On decoding, this function returns the position at which the parse failed (-1 = no error).
public static LastDecodeSuccessful ( ) : bool
return bool

LookAhead() protected method

protected LookAhead ( char json, int index ) : int
json char
index int
return int

NextToken() protected method

protected NextToken ( char json, int &index ) : int
json char
index int
return int

ParseArray() protected method

protected ParseArray ( char json, int &index ) : ArrayList
json char
index int
return System.Collections.ArrayList

ParseNumber() protected method

protected ParseNumber ( char json, int &index ) : double
json char
index int
return double

ParseObject() protected method

protected ParseObject ( char json, int &index ) : Hashtable
json char
index int
return System.Collections.Hashtable

ParseString() protected method

protected ParseString ( char json, int &index ) : string
json char
index int
return string

ParseValue() protected method

protected ParseValue ( char json, int &index, bool &success ) : object
json char
index int
success bool
return object

SerializeArray() protected method

protected SerializeArray ( ArrayList anArray, StringBuilder builder ) : bool
anArray System.Collections.ArrayList
builder StringBuilder
return bool

SerializeNumber() protected method

protected SerializeNumber ( double number, StringBuilder builder ) : void
number double
builder StringBuilder
return void

SerializeObject() protected method

protected SerializeObject ( Hashtable anObject, StringBuilder builder ) : bool
anObject System.Collections.Hashtable
builder StringBuilder
return bool

SerializeObjectOrArray() protected method

protected SerializeObjectOrArray ( object objectOrArray, StringBuilder builder ) : bool
objectOrArray object
builder StringBuilder
return bool

SerializeString() protected method

protected SerializeString ( string aString, StringBuilder builder ) : void
aString string
builder StringBuilder
return void

SerializeValue() protected method

protected SerializeValue ( object value, StringBuilder builder ) : bool
value object
builder StringBuilder
return bool

Property Details

lastDecode protected property

protected string lastDecode
return string

lastErrorIndex protected property

On decoding, this value holds the position at which the parse failed (-1 = no error).
protected int lastErrorIndex
return int