|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.thoughtworks.xstream.io.json.JsonWriter
public class JsonWriter
A simple writer that outputs JSON in a pretty-printed indented stream. Arrays, Lists and Sets rely on you NOT using XStream.addImplicitCollection(..).
| Nested Class Summary | |
|---|---|
class |
JsonWriter.Node
|
| Field Summary | |
|---|---|
static int |
DROP_ROOT_MODE
DROP_ROOT_MODE drops the JSON root node. |
static int |
STRICT_MODE
STRICT_MODE prevents invalid JSON for single value objects when dropping the root. |
| Constructor Summary | |
|---|---|
JsonWriter(Writer writer)
|
|
JsonWriter(Writer writer,
char[] lineIndenter)
|
|
JsonWriter(Writer writer,
char[] lineIndenter,
String newLine)
|
|
JsonWriter(Writer writer,
char[] lineIndenter,
String newLine,
int mode)
|
|
JsonWriter(Writer writer,
int mode)
Create a JsonWriter where the writer mode can be chosen. |
|
JsonWriter(Writer writer,
String lineIndenter)
|
|
JsonWriter(Writer writer,
String lineIndenter,
String newLine)
|
|
| Method Summary | |
|---|---|
void |
addAttribute(String key,
String value)
|
void |
close()
Close the writer, if necessary. |
void |
endNode()
|
protected void |
endOfLine()
|
void |
flush()
Flush the writer, if necessary. |
void |
setValue(String text)
Write the value (text content) of the current node. |
void |
startNode(String name)
Deprecated. since 1.2, use startNode(String name, Class clazz) instead. |
void |
startNode(String name,
Class clazz)
|
HierarchicalStreamWriter |
underlyingWriter()
Return the underlying HierarchicalStreamWriter implementation. |
protected void |
writeAttributeValue(com.thoughtworks.xstream.core.util.QuickWriter writer,
String text)
|
protected void |
writeText(com.thoughtworks.xstream.core.util.QuickWriter writer,
String text)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int DROP_ROOT_MODE
The root node is the first level of the JSON object i.e.
{ "person": {
"name": "Joe"
}}
will be written without root simply as
{
"name": "Joe"
}
Without a root node, the top level element might now also be an array. However, it is
possible to generate invalid JSON unless STRICT_MODE is also set.
public static final int STRICT_MODE
The mode is only useful in combination with the DROP_ROOT_MODE. An object with a
single value as first node i.e.
{ "name": "Joe" }
is simply written as
"Joe"However, this is no longer valid JSON. Therefore you can activate
STRICT_MODE
and a ConversionException is thrown instead.
| Constructor Detail |
|---|
public JsonWriter(Writer writer,
char[] lineIndenter,
String newLine)
public JsonWriter(Writer writer,
char[] lineIndenter)
public JsonWriter(Writer writer,
String lineIndenter,
String newLine)
public JsonWriter(Writer writer,
String lineIndenter)
public JsonWriter(Writer writer)
public JsonWriter(Writer writer,
char[] lineIndenter,
String newLine,
int mode)
public JsonWriter(Writer writer,
int mode)
Following constants can be used as bit mask:
DROP_ROOT_MODE: drop the root nodeSTRICT_MODE: do not throw ConversionException, if writer should
generate invalid JSON
writer - the Writer where the JSON is written tomode - the JsonWriter mode| Method Detail |
|---|
public void startNode(String name)
startNode in interface HierarchicalStreamWriter
public void startNode(String name,
Class clazz)
startNode in interface ExtendedHierarchicalStreamWriterpublic void setValue(String text)
HierarchicalStreamWriter
setValue in interface HierarchicalStreamWriter
public void addAttribute(String key,
String value)
addAttribute in interface HierarchicalStreamWriter
protected void writeAttributeValue(com.thoughtworks.xstream.core.util.QuickWriter writer,
String text)
protected void writeText(com.thoughtworks.xstream.core.util.QuickWriter writer,
String text)
public void endNode()
endNode in interface HierarchicalStreamWriterprotected void endOfLine()
public void flush()
HierarchicalStreamWriter
flush in interface HierarchicalStreamWriterpublic void close()
HierarchicalStreamWriter
close in interface HierarchicalStreamWriterpublic HierarchicalStreamWriter underlyingWriter()
HierarchicalStreamWriterIf a Converter needs to access methods of a specific HierarchicalStreamWriter implementation that are not defined in the HierarchicalStreamWriter interface, it should call this method before casting. This is because the writer passed to the Converter is often wrapped/decorated by another implementation to provide additional functionality (such as XPath tracking).
For example:
MySpecificWriter mySpecificWriter = (MySpecificWriter)writer; // INCORRECT! mySpecificWriter.doSomethingSpecific();
MySpecificWriter mySpecificWriter = (MySpecificWriter)writer.underlyingWriter(); // CORRECT! mySpecificWriter.doSomethingSpecific();
Implementations of HierarchicalStreamWriter should return 'this', unless they are a decorator, in which case they should delegate to whatever they are wrapping.
underlyingWriter in interface HierarchicalStreamWriter
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||