C# Class ThermostatMonitorLib.JSON

JSON Helper library is from: http://techblog.procurios.nl/k/n618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html?pageNr=3 and is subject to the MIT license (http://www.opensource.org/licenses/mit-license.php). .NET 4.0 has native JSON support, but I chose to use this helper instead to make this library accessible to more developers. 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: AndroidThermostat/ThermostatMonitor-Net

Public Methods

Method Description
JsonDecode ( string json ) : object

Parses the string json into a value

JsonDecode ( string json, bool &success ) : object

Parses the string json into a value; and fills 'success' with the successfullness of the parse.

JsonEncode ( object json ) : string

Converts a Hashtable / ArrayList object into a JSON string

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, null, etc). Thanks to mtighe for pointing out Double.TryParse to me.

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

Method Details

EatWhitespace() protected static method

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

GetLastIndexOfNumber() protected static method

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

IsNumeric() protected static method

Determines if a given object is numeric in any way (can be integer, double, null, etc). Thanks to mtighe for pointing out Double.TryParse to me.
protected static 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

JsonDecode() public static method

Parses the string json into a value; and fills 'success' with the successfullness of the parse.
public static JsonDecode ( string json, bool &success ) : object
json string A JSON string.
success bool Successful parse?
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

LookAhead() protected static method

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

NextToken() protected static method

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

ParseArray() protected static method

protected static ParseArray ( char json, int &index, bool &success ) : ArrayList
json char
index int
success bool
return ArrayList

ParseNumber() protected static method

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

ParseObject() protected static method

protected static ParseObject ( char json, int &index, bool &success ) : Hashtable
json char
index int
success bool
return Hashtable

ParseString() protected static method

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

ParseValue() protected static method

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

SerializeArray() protected static method

protected static SerializeArray ( ArrayList anArray, StringBuilder builder ) : bool
anArray ArrayList
builder StringBuilder
return bool

SerializeNumber() protected static method

protected static SerializeNumber ( double number, StringBuilder builder ) : bool
number double
builder StringBuilder
return bool

SerializeObject() protected static method

protected static SerializeObject ( Hashtable anObject, StringBuilder builder ) : bool
anObject Hashtable
builder StringBuilder
return bool

SerializeString() protected static method

protected static SerializeString ( string aString, StringBuilder builder ) : bool
aString string
builder StringBuilder
return bool

SerializeValue() protected static method

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