Package org.grails.web.json
Class JSONWriter
- java.lang.Object
-
- org.grails.web.json.JSONWriter
-
- Direct Known Subclasses:
PathCapturingJSONWriterWrapper,PrettyPrintJSONWriter
public class JSONWriter extends java.lang.ObjectJSONWriter 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 avaluemethod for appending values to the text, and akeymethod for adding keys before values in objects. There arearrayandendArraymethods that make and bound array values, andobjectandendObjectmethods 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 bearrayorobject. 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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classJSONWriter.ModeEnumeration of the possible modes of the JSONWriter
-
Field Summary
Fields Modifier and Type Field Description protected booleancommaThe comma flag determines if a comma should be output before the next value.protected JSONWriter.ModemodeThe current mode.protected java.io.WriterwriterThe writer that will receive the output.
-
Constructor Summary
Constructors Constructor Description JSONWriter(java.io.Writer w)Make a fresh JSONWriter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected JSONWriterappend(groovy.lang.Writable writableValue)protected JSONWriterappend(java.lang.String s)Append a value.JSONWriterarray()Begin appending a new array.protected voidcomma()protected JSONWriterend(JSONWriter.Mode m, char c)End something.JSONWriterendArray()End an array.JSONWriterendObject()End an object.JSONWriterkey(java.lang.String s)Append a key.JSONWriterobject()Begin appending a new object.protected voidpop(JSONWriter.Mode c)Pop an array or object scope.protected voidpush(JSONWriter.Mode c)Push an array or object scope.JSONWritervalue(boolean b)Append either the valuetrueor the valuefalse.JSONWritervalue(double d)Append a double value.JSONWritervalue(long l)Append a long value.JSONWritervalue(java.lang.Number number)Append a number valueJSONWritervalue(java.lang.Object o)Append an object value.JSONWritervalueNull()
-
-
-
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.
-
-
Method Detail
-
append
protected JSONWriter append(java.lang.String s)
Append a value.- Parameters:
s- A string value.- Returns:
- this
-
append
protected JSONWriter append(groovy.lang.Writable writableValue)
-
comma
protected void comma()
-
array
public JSONWriter array()
Begin appending a new array. All values until the balancingendArraywill be appended to this array. TheendArraymethod must be called to mark the array's end.- Returns:
- this
-
end
protected JSONWriter end(JSONWriter.Mode m, char c)
End something.- Parameters:
m- Modec- Closing character- Returns:
- this
-
endArray
public JSONWriter endArray()
End an array. This method most be called to balance calls toarray.- Returns:
- this
-
endObject
public JSONWriter endObject()
End an object. This method most be called to balance calls toobject.- 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 balancingendObjectwill be appended to this object. TheendObjectmethod 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 valuetrueor the valuefalse.- 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.Number number)
Append a number value- Parameters:
number-- Returns:
-
valueNull
public JSONWriter valueNull()
-
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
-
-