public class JsonReader extends Object implements Closeable, ReaderContext
JsonReader.jsonToJava(String json)
. This will
return a typed Java object graph.JsonReader.jsonToMaps(String json)
. This will
return an untyped object representation of the JSON String as a Map of Maps, where
the fields are the Map keys, and the field values are the associated Map's values. You can
call the JsonWriter.objectToJson() method with the returned Map, and it will serialize
the Graph into the equivalent JSON stream from which it was read.
JsonReader(InputStream in)
and then call
readObject()
. Cast the return value of readObject() to the Java class that was the root of
the graph.
JsonReader(InputStream in, true)
and then call
readObject()
. The return value will be a Map of Maps.
Modifier and Type | Class and Description |
---|---|
static interface |
JsonReader.ClassFactory
Subclass this interface and create a class that will return a new instance of the
passed in Class (c).
|
static interface |
JsonReader.JsonClassReader
Implement this interface to add a custom JSON reader.
|
static interface |
JsonReader.MissingFieldHandler
Used to react to fields missing when reading an object.
|
Constructor and Description |
---|
JsonReader(InputStream input,
ReadOptions readOptions)
Creates a json reader using custom read options
|
JsonReader(InputStream inputStream,
ReadOptions readOptions,
ReferenceTracker references) |
JsonReader(ReadOptions readOptions)
Use this constructor if you already have a JsonObject graph and want to parse it into
Java objects by calling jsonReader.jsonObjectsToJava(rootJsonObject) after constructing
the JsonReader.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
protected <T> T |
convertJsonValueToJava(JsonObject rootObj,
Class<T> root)
This method converts a rootObj Map, (which contains nested Maps
and so forth representing a Java Object graph), to a Java
object instance.
|
ClassLoader |
getClassLoader() |
protected com.cedarsoftware.util.FastReader |
getReader(InputStream inputStream)
Allow others to try potentially faster Readers.
|
ReferenceTracker |
getReferences() |
<T> T |
readObject(Class<T> rootType) |
<T> T |
reentrantConvertJsonValueToJava(JsonObject rootObj,
Class<T> root)
This method converts a rootObj Map, (which contains nested Maps
and so forth representing a Java Object graph), to a Java
object instance.
|
void |
traverseFields(Deque<JsonObject> stack,
JsonObject jsonObj)
Walk the Java object fields and copy them from the JSON object to the Java object, performing
any necessary conversions on primitives, or deep traversals for field assignments to other objects,
arrays, Collections, or Maps.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getConverter, getReadOptions
public JsonReader(InputStream input, ReadOptions readOptions)
input
- InputStream of utf-encoded jsonreadOptions
- Read Options to turn on/off various feature options, or supply additional ClassFactory data,
etc. If null, readOptions will use all defaults.public JsonReader(InputStream inputStream, ReadOptions readOptions, ReferenceTracker references)
public JsonReader(ReadOptions readOptions)
readOptions
- Read Options to turn on/off various feature options, or supply additional ClassFactory data,
etc. If null, readOptions will use all defaults.protected com.cedarsoftware.util.FastReader getReader(InputStream inputStream)
inputStream
- InputStream that will be offering JSON.public <T> T readObject(Class<T> rootType)
public ClassLoader getClassLoader()
public ReferenceTracker getReferences()
getReferences
in interface ReaderContext
public <T> T reentrantConvertJsonValueToJava(JsonObject rootObj, Class<T> root)
reentrantConvertJsonValueToJava
in interface ReaderContext
rootObj
- JsonObject instance that was the rootObj object from theroot
- When you know the type you will be returning. Can be null (effectively Map.class)
JSON input that was parsed in an earlier call to JsonReader.public void traverseFields(Deque<JsonObject> stack, JsonObject jsonObj)
traverseFields
in interface ReaderContext
stack
- Stack (Deque) used for graph traversal.jsonObj
- a Map-of-Map representation of the current object being examined (containing all fields).protected <T> T convertJsonValueToJava(JsonObject rootObj, Class<T> root)
rootObj
- JsonObject instance that was the rootObj object from the
JSON input that was parsed in an earlier call to JsonReader.public void close()
close
in interface Closeable
close
in interface AutoCloseable
Copyright © 2024. All rights reserved.