Class JSONCodec
java.lang.Object
aQute.lib.json.JSONCodec
This is a simple JSON Coder and Encoder that uses the Java type system to
convert data objects to JSON and JSON to (type safe) Java objects. The
conversion is very much driven by classes and their public fields. Generic
information, when present is taken into account.
Usage patterns to encode:
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 arrays-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddHandler(Type type, Handler handler) Add a new local handlerdec()Create a new Decoder with the state and appropriate API.enc()Create a new Encoder with the state and appropriate API.booleanbooleanisStartCharacter(int c) static StringThis maps a name of a Java construct, which cannot contain Java keywords, to a keyword if it ends with aKEYWORD_SUFFIXand the name without the suffix maps to a Java keyword.static Stringprotected StringsetIgnorenull(boolean ignorenull) Ignore null values in output and input
-
Field Details
-
KEYWORD_SUFFIX
- See Also:
-
-
Constructor Details
-
JSONCodec
public JSONCodec()
-
-
Method Details
-
enc
-
dec
-
parseString
-
setIgnorenull
Ignore null values in output and input- Parameters:
ignorenull-- Returns:
- this
-
isIgnorenull
public boolean isIgnorenull() -
addHandler
-
keyword
This maps a name of a Java construct, which cannot contain Java keywords, to a keyword if it ends with aKEYWORD_SUFFIXand the name without the suffix maps to a Java keyword.- Parameters:
name- the name- Returns:
- either the name when it wasn't a keyword or a keyword
-
name
-
promiscuous
-
isStartCharacter
public boolean isStartCharacter(int c)
-