public class JSON
extends java.lang.Object
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 --> BooleanThe 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
converters for objects that may be registered with
registerConvertor(Class, Convertor)
.
These converters are looked up by class, interface and super class by
getConvertor(Class)
.
If a JSON object has a "class" field, then a java class for that name is
loaded and the method convertTo(Class,Map)
is used to find a
JSON.Convertor
for that class.
If a JSON object has a "x-class" field then a direct lookup for a
JSON.Convertor
for that class name is done (without loading the class).
Modifier and Type | Class and Description |
---|---|
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 |
Constructor and Description |
---|
JSON() |
Modifier and Type | Method and Description |
---|---|
void |
addConvertor(java.lang.Class forClass,
JSON.Convertor convertor)
Register a
JSON.Convertor for a class or interface. |
void |
addConvertorFor(java.lang.String name,
JSON.Convertor convertor)
Register a
JSON.Convertor for a named class or interface. |
void |
append(java.lang.Appendable buffer,
java.lang.Object object)
Append object as JSON to string buffer.
|
void |
append(java.lang.StringBuffer buffer,
java.lang.Object object)
Deprecated.
|
void |
appendArray(java.lang.Appendable buffer,
java.util.Collection collection) |
void |
appendArray(java.lang.Appendable buffer,
java.lang.Object array) |
void |
appendArray(java.lang.StringBuffer buffer,
java.util.Collection collection)
Deprecated.
|
void |
appendArray(java.lang.StringBuffer buffer,
java.lang.Object array)
Deprecated.
|
void |
appendBoolean(java.lang.Appendable buffer,
java.lang.Boolean b) |
void |
appendBoolean(java.lang.StringBuffer buffer,
java.lang.Boolean b)
Deprecated.
|
void |
appendJSON(java.lang.Appendable buffer,
JSON.Convertible converter) |
void |
appendJSON(java.lang.Appendable buffer,
JSON.Convertor convertor,
java.lang.Object object) |
void |
appendJSON(java.lang.Appendable buffer,
JSON.Generator generator) |
void |
appendJSON(java.lang.StringBuffer buffer,
JSON.Convertible converter)
Deprecated.
|
void |
appendJSON(java.lang.StringBuffer buffer,
JSON.Convertor convertor,
java.lang.Object object)
Deprecated.
|
void |
appendJSON(java.lang.StringBuffer buffer,
JSON.Generator generator)
Deprecated.
|
void |
appendMap(java.lang.Appendable buffer,
java.util.Map<?,?> map) |
void |
appendMap(java.lang.StringBuffer buffer,
java.util.Map<?,?> map)
Deprecated.
|
void |
appendNull(java.lang.Appendable buffer) |
void |
appendNull(java.lang.StringBuffer buffer)
Deprecated.
|
void |
appendNumber(java.lang.Appendable buffer,
java.lang.Number number) |
void |
appendNumber(java.lang.StringBuffer buffer,
java.lang.Number number)
Deprecated.
|
void |
appendString(java.lang.Appendable buffer,
java.lang.String string) |
void |
appendString(java.lang.StringBuffer buffer,
java.lang.String string)
Deprecated.
|
protected static void |
complete(java.lang.String seek,
JSON.Source source) |
protected JSON |
contextFor(java.lang.String field) |
protected JSON |
contextForArray() |
protected java.lang.Object |
convertTo(java.lang.Class type,
java.util.Map map) |
void |
escapeString(java.lang.Appendable buffer,
java.lang.String input) |
protected void |
escapeUnicode(java.lang.Appendable buffer,
char c)
Per spec, unicode characters are by default NOT escaped.
|
java.lang.Object |
fromJSON(java.lang.String json)
Convert JSON to Object
|
protected JSON.Convertor |
getConvertor(java.lang.Class forClass)
Lookup a convertor for a class.
|
JSON.Convertor |
getConvertorFor(java.lang.String name)
Lookup a convertor for a named class.
|
static JSON |
getDefault() |
int |
getStringBufferSize() |
protected java.lang.Object |
handleUnknown(JSON.Source source,
char c) |
protected java.lang.Object[] |
newArray(int size) |
protected java.util.Map<java.lang.String,java.lang.Object> |
newMap() |
static java.lang.Object |
parse(java.io.InputStream in)
Deprecated.
use
parse(Reader) |
static java.lang.Object |
parse(java.io.InputStream in,
boolean stripOuterComment)
Deprecated.
|
java.lang.Object |
parse(JSON.Source source) |
java.lang.Object |
parse(JSON.Source source,
boolean stripOuterComment) |
static java.lang.Object |
parse(java.io.Reader in) |
static java.lang.Object |
parse(java.io.Reader in,
boolean stripOuterComment) |
static java.lang.Object |
parse(java.lang.String s) |
static java.lang.Object |
parse(java.lang.String s,
boolean stripOuterComment) |
protected java.lang.Object |
parseArray(JSON.Source source) |
java.lang.Number |
parseNumber(JSON.Source source) |
protected java.lang.Object |
parseObject(JSON.Source source) |
protected java.lang.String |
parseString(JSON.Source source) |
static void |
registerConvertor(java.lang.Class forClass,
JSON.Convertor convertor)
Register a
JSON.Convertor for a class or interface. |
static void |
reset()
Reset the default JSON behaviors to default
|
protected void |
seekTo(char seek,
JSON.Source source) |
protected char |
seekTo(java.lang.String seek,
JSON.Source source) |
static void |
setDefault(JSON json)
Deprecated.
|
void |
setStringBufferSize(int stringBufferSize) |
java.lang.String |
toJSON(java.lang.Object object)
Convert Object to JSON
|
protected java.lang.String |
toString(char[] buffer,
int offset,
int length) |
static java.lang.String |
toString(java.util.Map object) |
static java.lang.String |
toString(java.lang.Object object) |
static java.lang.String |
toString(java.lang.Object[] array) |
public static final JSON DEFAULT
public static void reset()
public int getStringBufferSize()
public void setStringBufferSize(int stringBufferSize)
stringBufferSize
- the initial stringBuffer size to use when creating JSON
strings (default 1024)public static void registerConvertor(java.lang.Class forClass, JSON.Convertor convertor)
JSON.Convertor
for a class or interface.forClass
- The class or interface that the convertor applies toconvertor
- the convertorpublic static JSON getDefault()
@Deprecated public static void setDefault(JSON json)
public static java.lang.String toString(java.lang.Object object)
public static java.lang.String toString(java.util.Map object)
public static java.lang.String toString(java.lang.Object[] array)
public static java.lang.Object parse(java.lang.String s)
s
- String containing JSON object or array.public static java.lang.Object parse(java.lang.String s, boolean stripOuterComment)
s
- String containing JSON object or array.stripOuterComment
- If true, an outer comment around the JSON is ignored.public static java.lang.Object parse(java.io.Reader in) throws java.io.IOException
in
- Reader containing JSON object or array.java.io.IOException
- if unable to parsepublic static java.lang.Object parse(java.io.Reader in, boolean stripOuterComment) throws java.io.IOException
in
- Reader containing JSON object or array.stripOuterComment
- If true, an outer comment around the JSON is ignored.java.io.IOException
- if unable to parse@Deprecated public static java.lang.Object parse(java.io.InputStream in) throws java.io.IOException
parse(Reader)
in
- Reader containing JSON object or array.java.io.IOException
- if unable to parse@Deprecated public static java.lang.Object parse(java.io.InputStream in, boolean stripOuterComment) throws java.io.IOException
parse(Reader, boolean)
in
- Stream containing JSON object or array.stripOuterComment
- If true, an outer comment around the JSON is ignored.java.io.IOException
- if unable to parsepublic void escapeString(java.lang.Appendable buffer, java.lang.String input) throws java.io.IOException
java.io.IOException
protected void escapeUnicode(java.lang.Appendable buffer, char c) throws java.io.IOException
protected void escapeUnicode(Appendable buffer, char c) throws IOException
{
// Unicode is slash-u escaped
buffer.append(String.format("\\u%04x", (int)c));
}
buffer
- c
- java.io.IOException
public java.lang.String toJSON(java.lang.Object object)
object
- The object to convertpublic java.lang.Object fromJSON(java.lang.String json)
json
- The json to convert@Deprecated public void append(java.lang.StringBuffer buffer, java.lang.Object object)
public void append(java.lang.Appendable buffer, java.lang.Object object)
buffer
- the buffer to append toobject
- the object to append@Deprecated public void appendNull(java.lang.StringBuffer buffer)
public void appendNull(java.lang.Appendable buffer)
@Deprecated public void appendJSON(java.lang.StringBuffer buffer, JSON.Convertor convertor, java.lang.Object object)
public void appendJSON(java.lang.Appendable buffer, JSON.Convertor convertor, java.lang.Object object)
@Deprecated public void appendJSON(java.lang.StringBuffer buffer, JSON.Convertible converter)
public void appendJSON(java.lang.Appendable buffer, JSON.Convertible converter)
@Deprecated public void appendJSON(java.lang.StringBuffer buffer, JSON.Generator generator)
public void appendJSON(java.lang.Appendable buffer, JSON.Generator generator)
@Deprecated public void appendMap(java.lang.StringBuffer buffer, java.util.Map<?,?> map)
public void appendMap(java.lang.Appendable buffer, java.util.Map<?,?> map)
@Deprecated public void appendArray(java.lang.StringBuffer buffer, java.util.Collection collection)
public void appendArray(java.lang.Appendable buffer, java.util.Collection collection)
@Deprecated public void appendArray(java.lang.StringBuffer buffer, java.lang.Object array)
public void appendArray(java.lang.Appendable buffer, java.lang.Object array)
@Deprecated public void appendBoolean(java.lang.StringBuffer buffer, java.lang.Boolean b)
public void appendBoolean(java.lang.Appendable buffer, java.lang.Boolean b)
@Deprecated public void appendNumber(java.lang.StringBuffer buffer, java.lang.Number number)
public void appendNumber(java.lang.Appendable buffer, java.lang.Number number)
@Deprecated public void appendString(java.lang.StringBuffer buffer, java.lang.String string)
public void appendString(java.lang.Appendable buffer, java.lang.String string)
protected java.lang.String toString(char[] buffer, int offset, int length)
protected java.util.Map<java.lang.String,java.lang.Object> newMap()
protected java.lang.Object[] newArray(int size)
protected JSON contextForArray()
protected JSON contextFor(java.lang.String field)
protected java.lang.Object convertTo(java.lang.Class type, java.util.Map map)
public void addConvertor(java.lang.Class forClass, JSON.Convertor convertor)
JSON.Convertor
for a class or interface.forClass
- The class or interface that the convertor applies toconvertor
- the convertorprotected JSON.Convertor getConvertor(java.lang.Class forClass)
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.
forClass
- The classJSON.Convertor
or null if none were found.public void addConvertorFor(java.lang.String name, JSON.Convertor convertor)
JSON.Convertor
for a named class or interface.name
- name of a class or an interface that the convertor applies toconvertor
- the convertorpublic JSON.Convertor getConvertorFor(java.lang.String name)
name
- name of the classJSON.Convertor
or null if none were found.public java.lang.Object parse(JSON.Source source, boolean stripOuterComment)
public java.lang.Object parse(JSON.Source source)
protected java.lang.Object handleUnknown(JSON.Source source, char c)
protected java.lang.Object parseObject(JSON.Source source)
protected java.lang.Object parseArray(JSON.Source source)
protected java.lang.String parseString(JSON.Source source)
public java.lang.Number parseNumber(JSON.Source source)
protected void seekTo(char seek, JSON.Source source)
protected char seekTo(java.lang.String seek, JSON.Source source)
protected static void complete(java.lang.String seek, JSON.Source source)
Copyright © 1995–2023 Webtide. All rights reserved.