Groovy Documentation

org.codehaus.groovy.grails.web.json
[Java] Class JSONWriter

java.lang.Object
  org.codehaus.groovy.grails.web.json.JSONWriter

public class JSONWriter
extends java.lang.Object

JSONWriter provides a quick and convenient way of producing JSON text. The texts produced strictly conform to JSON syntax rules. No whitespace is added, so the results are ready for transmission or storage. Each instance of JSONWriter can produce one JSON text.

A JSONWriter instance provides a value method for appending values to the text, and a key method for adding keys before values in objects. There are array and endArray methods that make and bound array values, and object and endObject methods which make and bound object values. All of these methods return the JSONWriter instance, permitting a cascade style. For example,

 new JSONWriter(myWriter)
     .object()
         .key("JSON")
         .value("Hello, World!")
     .endObject();
which writes
 {"JSON":"Hello, World!"}

The first method called must be array or object. There are no methods for adding commas or colons. JSONWriter adds them for you. Objects and arrays can be nested up to 20 levels deep.

This can sometimes be easier than using a JSONObject to build a string.

Authors:
JSON.org
Version:
2


Nested Class Summary
protected enum JSONWriter.Mode

Enumeration of the possible modes of the JSONWriter

 
Field Summary
protected boolean comma

The comma flag determines if a comma should be output before the next value.

protected JSONWriter.Mode mode

The current mode.

protected java.io.Writer writer

The writer that will receive the output.

 
Constructor Summary
JSONWriter(java.io.Writer w)

Make a fresh JSONWriter.

 
Method Summary
protected JSONWriter append(java.lang.String s)

Append a value.

JSONWriter array()

Begin appending a new array.

protected void comma()

protected JSONWriter end(JSONWriter.Mode m, char c)

End something.

JSONWriter endArray()

End an array.

JSONWriter endObject()

End an object.

JSONWriter key(java.lang.String s)

Append a key.

JSONWriter object()

Begin appending a new object.

protected void pop(JSONWriter.Mode c)

Pop an array or object scope.

protected void push(JSONWriter.Mode c)

Push an array or object scope.

JSONWriter value(boolean b)

Append either the value true or the value false.

JSONWriter value(double d)

Append a double value.

JSONWriter value(long l)

Append a long value.

JSONWriter value(java.lang.Object o)

Append an object value.

 
Methods inherited from class java.lang.Object
java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Field Detail

comma

protected boolean comma
The comma flag determines if a comma should be output before the next value.


mode

protected JSONWriter.Mode mode
The current mode. Values:


writer

protected java.io.Writer writer
The writer that will receive the output.


 
Constructor Detail

JSONWriter

public JSONWriter(java.io.Writer w)
Make a fresh JSONWriter. It can be used to build one JSON text.


 
Method Detail

append

protected JSONWriter append(java.lang.String s)
Append a value.
Parameters:
s - A string value.
Returns:
this


array

public JSONWriter array()
Begin appending a new array. All values until the balancing endArray will be appended to this array. The endArray method must be called to mark the array's end.
Returns:
this


comma

protected void comma()


end

protected JSONWriter end(JSONWriter.Mode m, char c)
End something.
Parameters:
m - Mode
c - Closing character
Returns:
this


endArray

public JSONWriter endArray()
End an array. This method most be called to balance calls to array.
Returns:
this


endObject

public JSONWriter endObject()
End an object. This method most be called to balance calls to object.
Returns:
this


key

public JSONWriter key(java.lang.String s)
Append a key. The key will be associated with the next value. In an object, every value must be preceded by a key.
Parameters:
s - A key string.
Returns:
this


object

public JSONWriter object()
Begin appending a new object. All keys and values until the balancing endObject will be appended to this object. The endObject method must be called to mark the object's end.
Returns:
this


pop

protected void pop(JSONWriter.Mode c)
Pop an array or object scope.
Parameters:
c - The scope to close.


push

protected void push(JSONWriter.Mode c)
Push an array or object scope.
Parameters:
c - The scope to open.


value

public JSONWriter value(boolean b)
Append either the value true or the value false.
Parameters:
b - A boolean.
Returns:
this


value

public JSONWriter value(double d)
Append a double value.
Parameters:
d - A double.
Returns:
this


value

public JSONWriter value(long l)
Append a long value.
Parameters:
l - A long.
Returns:
this


value

public JSONWriter value(java.lang.Object o)
Append an object value.
Parameters:
o - The object to append. It can be null, or a Boolean, Number, String, JSONObject, or JSONArray.
Returns:
this


 

Groovy Documentation