public static class StreamingJsonBuilder.StreamingJsonDelegate extends GroovyObjectSupport
Modifier and Type | Field and Description |
---|---|
protected boolean |
first |
protected groovy.json.StreamingJsonBuilder.StreamingJsonDelegate.State |
state |
protected Writer |
writer |
Constructor and Description |
---|
StreamingJsonDelegate(Writer w,
boolean first) |
StreamingJsonDelegate(Writer w,
boolean first,
JsonGenerator generator) |
Modifier and Type | Method and Description |
---|---|
void |
call(String name,
Closure value)
Writes the name and another JSON object
|
void |
call(String name,
Collection coll,
Closure c)
Delegates to
call(String, Iterable, Closure) |
void |
call(String name,
Iterable coll,
Closure c)
A collection and closure passed to a JSON builder will create a root JSON array applying
the closure to each object in the collection
|
void |
call(String name,
JsonOutput.JsonUnescaped json)
Writes an unescaped value.
|
void |
call(String name,
List<Object> list)
Writes the name and a JSON array
|
void |
call(String name,
Object... array)
Writes the name and a JSON array
|
void |
call(String name,
Object value)
Writes the name and value of a JSON attribute
|
void |
call(String name,
Object value,
Closure callable)
Writes the name and value of a JSON attribute
|
void |
call(String name,
Writable json)
Writes the given Writable as the value of the given attribute name
|
static void |
cloneDelegateAndGetContent(Writer w,
Closure c) |
static void |
cloneDelegateAndGetContent(Writer w,
Closure c,
boolean first) |
static void |
curryDelegateAndGetContent(Writer w,
Closure c,
Object o) |
static void |
curryDelegateAndGetContent(Writer w,
Closure c,
Object o,
boolean first) |
Writer |
getWriter() |
Object |
invokeMethod(String name,
Object args)
Invokes the given method.
|
static boolean |
isCollectionWithClosure(Object[] args) |
protected void |
verifyValue() |
protected void |
writeArray(List<Object> list) |
static Object |
writeCollectionWithClosure(Writer writer,
Collection coll,
Closure closure) |
protected void |
writeName(String name) |
protected void |
writeValue(Object value) |
getMetaClass, getProperty, setMetaClass, setProperty
protected final Writer writer
protected boolean first
protected groovy.json.StreamingJsonBuilder.StreamingJsonDelegate.State state
public StreamingJsonDelegate(Writer w, boolean first)
public StreamingJsonDelegate(Writer w, boolean first, JsonGenerator generator)
public Writer getWriter()
public Object invokeMethod(String name, Object args)
GroovyObject
invokeMethod
in interface GroovyObject
invokeMethod
in class GroovyObjectSupport
name
- the name of the method to callargs
- the arguments to use for the method callpublic void call(String name, List<Object> list) throws IOException
name
- The name of the JSON attributelist
- The list representing the arrayIOException
public void call(String name, Object... array) throws IOException
name
- The name of the JSON attributearray
- The list representing the arrayIOException
public void call(String name, Iterable coll, @DelegatesTo(value=StreamingJsonBuilder.StreamingJsonDelegate.class) Closure c) throws IOException
Example:
class Author { String name } def authorList = [new Author (name: "Guillaume"), new Author (name: "Jochen"), new Author (name: "Paul")] new StringWriter().with { w->
def json = new groovy.json.StreamingJsonBuilder(w) json.book { authors authorList, { Author author->
name author.name } } assert w.toString() == '{"book":{"authors":[{"name":"Guillaume"},{"name":"Jochen"},{"name":"Paul"}]}}' }
coll
- a collectionc
- a closure used to convert the objects of collIOException
public void call(String name, Collection coll, @DelegatesTo(value=StreamingJsonBuilder.StreamingJsonDelegate.class) Closure c) throws IOException
call(String, Iterable, Closure)
IOException
public void call(String name, Object value) throws IOException
name
- The attribute namevalue
- The valueIOException
public void call(String name, Object value, @DelegatesTo(value=StreamingJsonBuilder.StreamingJsonDelegate.class) Closure callable) throws IOException
name
- The attribute namevalue
- The valueIOException
public void call(String name, @DelegatesTo(value=StreamingJsonBuilder.StreamingJsonDelegate.class) Closure value) throws IOException
name
- The attribute namevalue
- The valueIOException
public void call(String name, JsonOutput.JsonUnescaped json) throws IOException
name
- The attribute namejson
- The valueIOException
public void call(String name, Writable json) throws IOException
name
- The attribute namejson
- The writable valueIOException
protected void verifyValue()
protected void writeName(String name) throws IOException
IOException
protected void writeValue(Object value) throws IOException
IOException
protected void writeArray(List<Object> list) throws IOException
IOException
public static boolean isCollectionWithClosure(Object[] args)
public static Object writeCollectionWithClosure(Writer writer, Collection coll, @DelegatesTo(value=StreamingJsonBuilder.StreamingJsonDelegate.class) Closure closure) throws IOException
IOException
public static void cloneDelegateAndGetContent(Writer w, @DelegatesTo(value=StreamingJsonBuilder.StreamingJsonDelegate.class) Closure c)
public static void cloneDelegateAndGetContent(Writer w, @DelegatesTo(value=StreamingJsonBuilder.StreamingJsonDelegate.class) Closure c, boolean first)
public static void curryDelegateAndGetContent(Writer w, @DelegatesTo(value=StreamingJsonBuilder.StreamingJsonDelegate.class) Closure c, Object o)
public static void curryDelegateAndGetContent(Writer w, @DelegatesTo(value=StreamingJsonBuilder.StreamingJsonDelegate.class) Closure c, Object o, boolean first)