json.serialize
Class JSONSerializer

java.lang.Object
  extended by json.serialize.JSONSerializer

public class JSONSerializer
extends java.lang.Object

This class is responsible for serializing a java object into JSON text. It can serialize pure objects which are representative of native types, such as Boolean, String and Double. It can also serialize arrays and collections of these objects such as ArrayList and HashMap. It can also serialize composite objects of these types through public fields and bean access methods.
Usage: The object is serialized to a String through the serialize() function.


Field Summary
private static java.lang.String ASSIGN_ELEMENT
          Constant String
private static java.lang.String END_ARRAY
          Constant String
private static java.lang.String END_OBJECT
          Constant String
private static java.lang.String END_STRING
          Constant String
private static java.lang.String JS_HEXPAD
          Constant String
private static java.lang.String JS_NULL
          Constant String
private static java.lang.String JS_VAR
          Constant String
private static java.lang.String JS_VARSPCSTART
          Constant String
private static java.lang.String NEXT_ELEMENT
          Constant String
private static java.lang.String START_ARRAY
          Constant String
private static java.lang.String START_OBJECT
          Constant String
private static java.lang.String START_STRING
          Constant String
private  int vCounter
          Counter used for creating unique variable names for unnamed variables
 
Constructor Summary
JSONSerializer()
           
 
Method Summary
private  boolean isArray(java.lang.Object pObj)
          This function checks if an object is an array of primitive objects.
private  boolean isPrimitive(java.lang.Object pObj)
          This function checks if an object is representative of primitive data types, such as Boolean ad String.
private  boolean isSerializable(java.lang.Object pObj)
          This function checks if an object is valid for serializable or not.
private  java.lang.String jsHex(java.lang.Number pNumber)
          Converts a number into a JS Hex Number
private  java.lang.String jsQuoteString(java.lang.String pOrig)
          Converts a String into a JSON representable format
private  java.lang.String jsVarQuoteString(java.lang.String pOrig)
          Converts a String into a JSON variable representable format
 java.lang.String serialize(java.lang.String pName, java.lang.Object pObj)
          This function returns the JSON representation of an object as a String.
private  java.lang.String serializeArray(java.lang.Object[] pArr)
          Serializes an array of objects into JSON
private  java.lang.String serializeBoolean(java.lang.Boolean pBool)
          Serializes a Boolean object into JSON
private  java.lang.String serializeByte(java.lang.Byte pByte)
          Serializes a Byte object into JSON
private  java.lang.String serializeCharacter(java.lang.Character pChar)
          Serializes a Character object into JSON
private  java.lang.String serializeCompositeObject(java.lang.Object pObj)
          Serializes a composite object
private  java.lang.String serializeDouble(java.lang.Double pDouble)
          Serializes a Double object into JSON
private  java.lang.String serializeEnum(java.lang.Enum pEnum)
          Serializes an Enum object into JSON
private  java.lang.String serializeFloat(java.lang.Float pFloat)
          Serializes a Float object into JSON
private  java.lang.String serializeInteger(java.lang.Integer pInt)
          Serializes an Integer object into JSON
private  java.lang.String serializeIterable(java.lang.Iterable pIter)
          Serializes an Iterable collection of objects into JSON
private  java.lang.String serializeLong(java.lang.Long pLong)
          Serializes a Long object into JSON
private  java.lang.String serializeMap(java.util.Map pMap)
          Serializes a Map of objects into JSON
private  java.lang.String serializeNull(java.lang.Object pObj)
          Serializes any Object into JSON null
private  java.lang.String serializeNumber(java.lang.Number pNumber)
          Serializes a Number object into JSON
private  java.lang.String serializeObject(java.lang.Object pObj)
          Serializes an object
private  java.lang.String serializePrimitive(java.lang.Object pObj)
          Serializes a primitive object into JSON
private  java.lang.String serializeShort(java.lang.Short pShort)
          Serializes a Short object into JSON
private  java.lang.String serializeString(java.lang.String pStr)
          Serializes a String object into JSON
private  java.lang.String serializeVoid(java.lang.Void pVoid)
          Serializes a Void object into JSON
private  java.lang.String serializeWrapper(java.lang.String pName, java.lang.Object pObj, boolean pEnclosed)
          A wrapper to serialize an object with it's name in JSON.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ASSIGN_ELEMENT

private static final java.lang.String ASSIGN_ELEMENT
Constant String

See Also:
Constant Field Values

NEXT_ELEMENT

private static final java.lang.String NEXT_ELEMENT
Constant String

See Also:
Constant Field Values

START_OBJECT

private static final java.lang.String START_OBJECT
Constant String

See Also:
Constant Field Values

END_OBJECT

private static final java.lang.String END_OBJECT
Constant String

See Also:
Constant Field Values

START_ARRAY

private static final java.lang.String START_ARRAY
Constant String

See Also:
Constant Field Values

END_ARRAY

private static final java.lang.String END_ARRAY
Constant String

See Also:
Constant Field Values

START_STRING

private static final java.lang.String START_STRING
Constant String

See Also:
Constant Field Values

END_STRING

private static final java.lang.String END_STRING
Constant String

See Also:
Constant Field Values

JS_NULL

private static final java.lang.String JS_NULL
Constant String

See Also:
Constant Field Values

JS_VAR

private static final java.lang.String JS_VAR
Constant String

See Also:
Constant Field Values

JS_VARSPCSTART

private static final java.lang.String JS_VARSPCSTART
Constant String

See Also:
Constant Field Values

JS_HEXPAD

private static final java.lang.String JS_HEXPAD
Constant String

See Also:
Constant Field Values

vCounter

private int vCounter
Counter used for creating unique variable names for unnamed variables

Constructor Detail

JSONSerializer

public JSONSerializer()
Method Detail

jsHex

private java.lang.String jsHex(java.lang.Number pNumber)
Converts a number into a JS Hex Number

Parameters:
pNumber - Number to ass
Returns:
A String with the formatted hexadecimal equivalent

jsQuoteString

private java.lang.String jsQuoteString(java.lang.String pOrig)
Converts a String into a JSON representable format

Parameters:
pOrig - A String
Returns:
A JS-escaped version of the String

jsVarQuoteString

private java.lang.String jsVarQuoteString(java.lang.String pOrig)
Converts a String into a JSON variable representable format

Parameters:
pOrig - A String
Returns:
A JS-friendly variable name

isPrimitive

private boolean isPrimitive(java.lang.Object pObj)
This function checks if an object is representative of primitive data types, such as Boolean ad String.

Parameters:
pObj - The Object to be checked
Returns:
true if the object is primitive, false if not

isSerializable

private boolean isSerializable(java.lang.Object pObj)
This function checks if an object is valid for serializable or not. This is different from classes which implement the Serializable interface.

Parameters:
pObj - The Object to be checked
Returns:
true if the object is serialzable, false if not

isArray

private boolean isArray(java.lang.Object pObj)
This function checks if an object is an array of primitive objects. It doesn't work for arrays of primitives. While Integer[] will work, int[] won't work.

Parameters:
pObj - The Object to be checked
Returns:
true if the object is an array, false if not

serializeNull

private java.lang.String serializeNull(java.lang.Object pObj)
Serializes any Object into JSON null

Parameters:
pObj - The Object to be JSON serialized
Returns:
The JSON representation as a String

serializeBoolean

private java.lang.String serializeBoolean(java.lang.Boolean pBool)
Serializes a Boolean object into JSON

Parameters:
pBool - The Boolean to be JSON serialized
Returns:
The JSON representation as a String

serializeByte

private java.lang.String serializeByte(java.lang.Byte pByte)
Serializes a Byte object into JSON

Parameters:
pByte - The Byte to be JSON serialized
Returns:
The JSON representation as a String

serializeCharacter

private java.lang.String serializeCharacter(java.lang.Character pChar)
Serializes a Character object into JSON

Parameters:
pChar - The Character to be JSON serialized
Returns:
The JSON representation as a Quoted String

serializeDouble

private java.lang.String serializeDouble(java.lang.Double pDouble)
Serializes a Double object into JSON

Parameters:
pDouble - The Double to be JSON serialized
Returns:
The JSON representation as a String

serializeEnum

private java.lang.String serializeEnum(java.lang.Enum pEnum)
Serializes an Enum object into JSON

Parameters:
pEnum - The Enum to be JSON serialized
Returns:
The JSON representation as a String

serializeFloat

private java.lang.String serializeFloat(java.lang.Float pFloat)
Serializes a Float object into JSON

Parameters:
pFloat - The Float to be JSON serialized
Returns:
The JSON representation as a String

serializeInteger

private java.lang.String serializeInteger(java.lang.Integer pInt)
Serializes an Integer object into JSON

Parameters:
pInt - The Integer to be JSON serialized
Returns:
The JSON representation as a String

serializeLong

private java.lang.String serializeLong(java.lang.Long pLong)
Serializes a Long object into JSON

Parameters:
pLong - The Long to be JSON serialized
Returns:
The JSON representation as a String

serializeNumber

private java.lang.String serializeNumber(java.lang.Number pNumber)
Serializes a Number object into JSON

Parameters:
pNumber - The Number to be JSON serialized
Returns:
The JSON representation as a String

serializeString

private java.lang.String serializeString(java.lang.String pStr)
Serializes a String object into JSON

Parameters:
pStr - The String to be JSON serialized
Returns:
The JSON representation as a Quoted String

serializeShort

private java.lang.String serializeShort(java.lang.Short pShort)
Serializes a Short object into JSON

Parameters:
pShort - The Short to be JSON serialized
Returns:
The JSON representation as a String

serializeVoid

private java.lang.String serializeVoid(java.lang.Void pVoid)
Serializes a Void object into JSON

Parameters:
pVoid - The Void to be JSON serialized
Returns:
The JSON representation as a String

serializePrimitive

private java.lang.String serializePrimitive(java.lang.Object pObj)
Serializes a primitive object into JSON

Parameters:
pObj - The object to be JSON Serialized
Returns:
The JSON representation as a String

serializeArray

private java.lang.String serializeArray(java.lang.Object[] pArr)
Serializes an array of objects into JSON

Parameters:
pArr - The array to be JSON Serialized
Returns:
The JSON representation as a String

serializeMap

private java.lang.String serializeMap(java.util.Map pMap)
Serializes a Map of objects into JSON

Parameters:
pMap - The Map to be JSON Serialized
Returns:
The JSON representation as a String

serializeIterable

private java.lang.String serializeIterable(java.lang.Iterable pIter)
Serializes an Iterable collection of objects into JSON

Parameters:
pIter - The Iterable collection to be JSON Serialized
Returns:
The JSON representation as a String

serializeCompositeObject

private java.lang.String serializeCompositeObject(java.lang.Object pObj)
Serializes a composite object

Parameters:
pObj - The Object to be JSON serialized
Returns:
The JSON representation as a String

serializeObject

private java.lang.String serializeObject(java.lang.Object pObj)
Serializes an object

Parameters:
pObj - The Object to be JSON serialized
Returns:
The JSON representation as a String

serializeWrapper

private java.lang.String serializeWrapper(java.lang.String pName,
                                          java.lang.Object pObj,
                                          boolean pEnclosed)
A wrapper to serialize an object with it's name in JSON. This wrapper is used as a way to avoid unnecessary bracing of elements in JSON.

Parameters:
pName - The JSON name of the object
pObj - The Object to be JSON serialized
pEnclosed - true if the serialized JSON representation is enclosed by braces.
Returns:
The JSON representation as a String

serialize

public java.lang.String serialize(java.lang.String pName,
                                  java.lang.Object pObj)
This function returns the JSON representation of an object as a String. It is the only way to use this class. It calls the other functions internally to serialize any given object/array/collection/composite into JSON.

Parameters:
pName - Name of the object passed
pObj - The object passed
Returns:
The JSON String representation of the object passed