org.eclipse.jetty.util.ajax
Class JSON

java.lang.Object
  extended by org.eclipse.jetty.util.ajax.JSON

public class JSON
extends Object

JSON Parser and Generator.

This class provides some static methods to convert POJOs to and from JSON notation. The mapping from JSON to java is:

   object ==> Map
   array  ==> Object[]
   number ==> Double or Long
   string ==> String
   null   ==> null
   bool   ==> Boolean
 

The java to JSON mapping is:

   String --> string
   Number --> number
   Map    --> object
   List   --> array
   Array  --> array
   null   --> null
   Boolean--> boolean
   Object --> string (dubious!)
 

The interface JSON.Convertible may be implemented by classes that wish to externalize and initialize specific fields to and from JSON objects. Only directed acyclic graphs of objects are supported.

The interface JSON.Generator may be implemented by classes that know how to render themselves as JSON and the toString(Object) method will use JSON.Generator.addJSON(Appendable) to generate the JSON. The class JSON.Literal may be used to hold pre-generated JSON object.

The interface JSON.Convertor may be implemented to provide static convertors for objects that may be registered with registerConvertor(Class, org.eclipse.jetty.util.ajax.JSON.Convertor) . These convertors are looked up by class, interface and super class by getConvertor(Class).


Nested Class Summary
static interface JSON.Convertible
          JSON Convertible object.
static interface JSON.Convertor
          Static JSON Convertor.
static interface JSON.Generator
          JSON Generator.
static class JSON.Literal
          A Literal JSON generator A utility instance of JSON.Generator that holds a pre-generated string on JSON text.
static interface JSON.Output
          JSON Output class for use by JSON.Convertible.
static class JSON.ReaderSource
           
static interface JSON.Source
           
static class JSON.StringSource
           
 
Field Summary
static JSON DEFAULT
           
 
Constructor Summary
JSON()
           
 
Method Summary
 void addConvertor(Class forClass, JSON.Convertor convertor)
          Register a JSON.Convertor for a class or interface.
 void addConvertorFor(String name, JSON.Convertor convertor)
          Register a JSON.Convertor for a named class or interface.
 void append(Appendable buffer, Object object)
          Append object as JSON to string buffer.
 void append(StringBuffer buffer, Object object)
          Deprecated. 
 void appendArray(Appendable buffer, Collection collection)
           
 void appendArray(Appendable buffer, Object array)
           
 void appendArray(StringBuffer buffer, Collection collection)
          Deprecated. 
 void appendArray(StringBuffer buffer, Object array)
          Deprecated. 
 void appendBoolean(Appendable buffer, Boolean b)
           
 void appendBoolean(StringBuffer buffer, Boolean b)
          Deprecated. 
 void appendJSON(Appendable buffer, JSON.Convertible converter)
           
 void appendJSON(Appendable buffer, JSON.Convertor convertor, Object object)
           
 void appendJSON(Appendable buffer, JSON.Generator generator)
           
 void appendJSON(StringBuffer buffer, JSON.Convertible converter)
          Deprecated. 
 void appendJSON(StringBuffer buffer, JSON.Convertor convertor, Object object)
          Deprecated. 
 void appendJSON(StringBuffer buffer, JSON.Generator generator)
          Deprecated. 
 void appendMap(Appendable buffer, Map<?,?> map)
           
 void appendMap(StringBuffer buffer, Map<?,?> map)
          Deprecated. 
 void appendNull(Appendable buffer)
           
 void appendNull(StringBuffer buffer)
          Deprecated. 
 void appendNumber(Appendable buffer, Number number)
           
 void appendNumber(StringBuffer buffer, Number number)
          Deprecated. 
 void appendString(Appendable buffer, String string)
           
 void appendString(StringBuffer buffer, String string)
          Deprecated. 
protected static void complete(String seek, JSON.Source source)
           
protected  JSON contextFor(String field)
           
protected  JSON contextForArray()
           
protected  Object convertTo(Class type, Map map)
           
 Object fromJSON(String json)
          Convert JSON to Object
protected  JSON.Convertor getConvertor(Class forClass)
          Lookup a convertor for a class.
 JSON.Convertor getConvertorFor(String name)
          Lookup a convertor for a named class.
static JSON getDefault()
           
 int getStringBufferSize()
           
protected  Object handleUnknown(JSON.Source source, char c)
           
protected  Object[] newArray(int size)
           
protected  Map<String,Object> newMap()
           
static Object parse(InputStream in)
          Deprecated. use parse(Reader)
static Object parse(InputStream in, boolean stripOuterComment)
          Deprecated. use parse(Reader, boolean)
 Object parse(JSON.Source source)
           
 Object parse(JSON.Source source, boolean stripOuterComment)
           
static Object parse(Reader in)
           
static Object parse(Reader in, boolean stripOuterComment)
           
static Object parse(String s)
           
static Object parse(String s, boolean stripOuterComment)
           
protected  Object parseArray(JSON.Source source)
           
 Number parseNumber(JSON.Source source)
           
protected  Object parseObject(JSON.Source source)
           
protected  String parseString(JSON.Source source)
           
static void registerConvertor(Class forClass, JSON.Convertor convertor)
          Register a JSON.Convertor for a class or interface.
protected  void seekTo(char seek, JSON.Source source)
           
protected  char seekTo(String seek, JSON.Source source)
           
static void setDefault(JSON json)
          Deprecated. 
 void setStringBufferSize(int stringBufferSize)
           
 String toJSON(Object object)
          Convert Object to JSON
protected  String toString(char[] buffer, int offset, int length)
           
static String toString(Map object)
           
static String toString(Object object)
           
static String toString(Object[] array)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT

public static final JSON DEFAULT
Constructor Detail

JSON

public JSON()
Method Detail

getStringBufferSize

public int getStringBufferSize()
Returns:
the initial stringBuffer size to use when creating JSON strings (default 1024)

setStringBufferSize

public void setStringBufferSize(int stringBufferSize)
Parameters:
stringBufferSize - the initial stringBuffer size to use when creating JSON strings (default 1024)

registerConvertor

public static void registerConvertor(Class forClass,
                                     JSON.Convertor convertor)
Register a JSON.Convertor for a class or interface.

Parameters:
forClass - The class or interface that the convertor applies to
convertor - the convertor

getDefault

public static JSON getDefault()

setDefault

@Deprecated
public static void setDefault(JSON json)
Deprecated. 


toString

public static String toString(Object object)

toString

public static String toString(Map object)

toString

public static String toString(Object[] array)

parse

public static Object parse(String s)
Parameters:
s - String containing JSON object or array.
Returns:
A Map, Object array or primitive array parsed from the JSON.

parse

public static Object parse(String s,
                           boolean stripOuterComment)
Parameters:
s - String containing JSON object or array.
stripOuterComment - If true, an outer comment around the JSON is ignored.
Returns:
A Map, Object array or primitive array parsed from the JSON.

parse

public static Object parse(Reader in)
                    throws IOException
Parameters:
in - Reader containing JSON object or array.
Returns:
A Map, Object array or primitive array parsed from the JSON.
Throws:
IOException

parse

public static Object parse(Reader in,
                           boolean stripOuterComment)
                    throws IOException
Parameters:
in - Reader containing JSON object or array.
stripOuterComment - If true, an outer comment around the JSON is ignored.
Returns:
A Map, Object array or primitive array parsed from the JSON.
Throws:
IOException

parse

@Deprecated
public static Object parse(InputStream in)
                    throws IOException
Deprecated. use parse(Reader)

Parameters:
in - Reader containing JSON object or array.
Returns:
A Map, Object array or primitive array parsed from the JSON.
Throws:
IOException

parse

@Deprecated
public static Object parse(InputStream in,
                                      boolean stripOuterComment)
                    throws IOException
Deprecated. use parse(Reader, boolean)

Parameters:
in - Stream containing JSON object or array.
stripOuterComment - If true, an outer comment around the JSON is ignored.
Returns:
A Map, Object array or primitive array parsed from the JSON.
Throws:
IOException

toJSON

public String toJSON(Object object)
Convert Object to JSON

Parameters:
object - The object to convert
Returns:
The JSON String

fromJSON

public Object fromJSON(String json)
Convert JSON to Object

Parameters:
json - The json to convert
Returns:
The object

append

@Deprecated
public void append(StringBuffer buffer,
                              Object object)
Deprecated. 


append

public void append(Appendable buffer,
                   Object object)
Append object as JSON to string buffer.

Parameters:
buffer - the buffer to append to
object - the object to append

appendNull

@Deprecated
public void appendNull(StringBuffer buffer)
Deprecated. 


appendNull

public void appendNull(Appendable buffer)

appendJSON

@Deprecated
public void appendJSON(StringBuffer buffer,
                                  JSON.Convertor convertor,
                                  Object object)
Deprecated. 


appendJSON

public void appendJSON(Appendable buffer,
                       JSON.Convertor convertor,
                       Object object)

appendJSON

@Deprecated
public void appendJSON(StringBuffer buffer,
                                  JSON.Convertible converter)
Deprecated. 


appendJSON

public void appendJSON(Appendable buffer,
                       JSON.Convertible converter)

appendJSON

@Deprecated
public void appendJSON(StringBuffer buffer,
                                  JSON.Generator generator)
Deprecated. 


appendJSON

public void appendJSON(Appendable buffer,
                       JSON.Generator generator)

appendMap

@Deprecated
public void appendMap(StringBuffer buffer,
                                 Map<?,?> map)
Deprecated. 


appendMap

public void appendMap(Appendable buffer,
                      Map<?,?> map)

appendArray

@Deprecated
public void appendArray(StringBuffer buffer,
                                   Collection collection)
Deprecated. 


appendArray

public void appendArray(Appendable buffer,
                        Collection collection)

appendArray

@Deprecated
public void appendArray(StringBuffer buffer,
                                   Object array)
Deprecated. 


appendArray

public void appendArray(Appendable buffer,
                        Object array)

appendBoolean

@Deprecated
public void appendBoolean(StringBuffer buffer,
                                     Boolean b)
Deprecated. 


appendBoolean

public void appendBoolean(Appendable buffer,
                          Boolean b)

appendNumber

@Deprecated
public void appendNumber(StringBuffer buffer,
                                    Number number)
Deprecated. 


appendNumber

public void appendNumber(Appendable buffer,
                         Number number)

appendString

@Deprecated
public void appendString(StringBuffer buffer,
                                    String string)
Deprecated. 


appendString

public void appendString(Appendable buffer,
                         String string)

toString

protected String toString(char[] buffer,
                          int offset,
                          int length)

newMap

protected Map<String,Object> newMap()

newArray

protected Object[] newArray(int size)

contextForArray

protected JSON contextForArray()

contextFor

protected JSON contextFor(String field)

convertTo

protected Object convertTo(Class type,
                           Map map)

addConvertor

public void addConvertor(Class forClass,
                         JSON.Convertor convertor)
Register a JSON.Convertor for a class or interface.

Parameters:
forClass - The class or interface that the convertor applies to
convertor - the convertor

getConvertor

protected JSON.Convertor getConvertor(Class forClass)
Lookup a convertor for a class.

If no match is found for the class, then the interfaces for the class are tried. If still no match is found, then the super class and it's interfaces are tried recursively.

Parameters:
forClass - The class
Returns:
a JSON.Convertor or null if none were found.

addConvertorFor

public void addConvertorFor(String name,
                            JSON.Convertor convertor)
Register a JSON.Convertor for a named class or interface.

Parameters:
name - name of a class or an interface that the convertor applies to
convertor - the convertor

getConvertorFor

public JSON.Convertor getConvertorFor(String name)
Lookup a convertor for a named class.

Parameters:
name - name of the class
Returns:
a JSON.Convertor or null if none were found.

parse

public Object parse(JSON.Source source,
                    boolean stripOuterComment)

parse

public Object parse(JSON.Source source)

handleUnknown

protected Object handleUnknown(JSON.Source source,
                               char c)

parseObject

protected Object parseObject(JSON.Source source)

parseArray

protected Object parseArray(JSON.Source source)

parseString

protected String parseString(JSON.Source source)

parseNumber

public Number parseNumber(JSON.Source source)

seekTo

protected void seekTo(char seek,
                      JSON.Source source)

seekTo

protected char seekTo(String seek,
                      JSON.Source source)

complete

protected static void complete(String seek,
                               JSON.Source source)


Copyright © 1995-2011 Mort Bay Consulting. All Rights Reserved.