public class JSONCodec
extends java.lang.Object
JSONCoder codec = new JSONCodec(); // assert "1".equals( codec.enc().to().put(1).toString()); assert "[1,2,3]".equals( codec.enc().to().put(Arrays.asList(1,2,3).toString()); Map m = new HashMap(); m.put("a", "A"); assert "{\"a\":\"A\"}".equals( codec.enc().to().put(m).toString()); static class D { public int a; } D d = new D(); d.a = 41; assert "{\"a\":41}".equals( codec.enc().to().put(d).toString());It is possible to redirect the encoder to another output (default is a string). See
Encoder.to()
,Encoder.to(File)
,
Encoder.to(OutputStream)
, Encoder.to(Appendable)
. To reset
the string output call Encoder.to()
.
This Codec class can be used in a concurrent environment. The Decoders and
Encoders, however, must only be used in a single thread.
Will now use hex for encoding byte arraysModifier and Type | Field and Description |
---|---|
private static BooleanHandler |
bh |
private static ByteArrayHandler |
byteh |
private static CharacterHandler |
ch |
private static CollectionHandler |
dch |
private static FileHandler |
fh |
private static java.util.WeakHashMap<java.lang.reflect.Type,Handler> |
handlers |
(package private) boolean |
ignorenull |
(package private) java.util.Map<java.lang.reflect.Type,Handler> |
localHandlers |
private static DateHandler |
sdh |
private static StringHandler |
sh |
private static SpecialHandler |
sph |
(package private) static java.lang.String |
START_CHARACTERS |
private static UUIDHandler |
uuidh |
Constructor and Description |
---|
JSONCodec() |
Modifier and Type | Method and Description |
---|---|
JSONCodec |
addHandler(java.lang.reflect.Type type,
Handler handler)
Add a new local handler
|
Decoder |
dec()
Create a new Decoder with the state and appropriate API.
|
(package private) java.lang.Object |
decode(java.lang.reflect.Type type,
Decoder isr) |
Encoder |
enc()
Create a new Encoder with the state and appropriate API.
|
(package private) void |
encode(Encoder app,
java.lang.Object object,
java.lang.reflect.Type type,
java.util.Map<java.lang.Object,java.lang.reflect.Type> visited) |
(package private) Handler |
getHandler(java.lang.reflect.Type type,
java.lang.Class<?> actual)
This method figures out which handler should handle the type specific
stuff.
|
(package private) java.lang.Class<?> |
getRawClass(java.lang.reflect.Type type) |
private int |
hexDigit(int c) |
boolean |
isIgnorenull() |
(package private) void |
parseArray(java.util.Collection<java.lang.Object> list,
java.lang.reflect.Type componentType,
Decoder r) |
private java.lang.Number |
parseNumber(Decoder r) |
(package private) java.lang.String |
parseString(Decoder r) |
JSONCodec |
setIgnorenull(boolean ignorenull)
Ignore null values in output and input
|
static final java.lang.String START_CHARACTERS
private static final java.util.WeakHashMap<java.lang.reflect.Type,Handler> handlers
private static StringHandler sh
private static BooleanHandler bh
private static CharacterHandler ch
private static CollectionHandler dch
private static SpecialHandler sph
private static DateHandler sdh
private static FileHandler fh
private static ByteArrayHandler byteh
private static UUIDHandler uuidh
boolean ignorenull
java.util.Map<java.lang.reflect.Type,Handler> localHandlers
public Encoder enc()
public Decoder dec()
void encode(Encoder app, java.lang.Object object, java.lang.reflect.Type type, java.util.Map<java.lang.Object,java.lang.reflect.Type> visited) throws java.lang.Exception
java.lang.Exception
Handler getHandler(java.lang.reflect.Type type, java.lang.Class<?> actual) throws java.lang.Exception
type
- Handler
appropriate for type
java.lang.Exception
java.lang.Object decode(java.lang.reflect.Type type, Decoder isr) throws java.lang.Exception
java.lang.Exception
java.lang.String parseString(Decoder r) throws java.lang.Exception
java.lang.Exception
private int hexDigit(int c) throws java.io.EOFException
java.io.EOFException
private java.lang.Number parseNumber(Decoder r) throws java.lang.Exception
java.lang.Exception
void parseArray(java.util.Collection<java.lang.Object> list, java.lang.reflect.Type componentType, Decoder r) throws java.lang.Exception
java.lang.Exception
java.lang.Class<?> getRawClass(java.lang.reflect.Type type)
public JSONCodec setIgnorenull(boolean ignorenull)
ignorenull
- public boolean isIgnorenull()