[Java] Class StreamingJsonDelegate
- groovy.json.StreamingJsonBuilder.StreamingJsonDelegate
The delegate used when invoking closures
Field Summary
Modifiers | Name | Description |
---|---|---|
protected boolean | first | |
protected StreamingJsonBuilder.StreamingJsonDelegate.State | state | |
protected Writer | writer |
Constructor Summary
Constructor and description |
---|
StreamingJsonBuilder.StreamingJsonDelegate
(Writer w, boolean first) |
StreamingJsonBuilder.StreamingJsonDelegate
(Writer w, boolean first, JsonGenerator generator) |
Methods Summary
Type Params | Return Type | Name and description |
---|---|---|
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, 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, Collection coll, Closure c) Delegates to call(String, Iterable, Closure) | |
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, Closure value) Writes the name and another JSON object | |
void |
call(String name, JsonUnescaped json) Writes an unescaped value. | |
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() @return Obtains the current writer | |
Object |
invokeMethod(String name, Object args) | |
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) |
Inherited Methods Summary
Methods inherited from class | Name |
---|---|
class GroovyObjectSupport | getMetaClass, getProperty, invokeMethod, setMetaClass, setProperty |
Field Detail
protected boolean first
protected StreamingJsonBuilder.StreamingJsonDelegate.State state
protected final Writer writer
Constructor Detail
public StreamingJsonBuilder.StreamingJsonDelegate(Writer w, boolean first)
public StreamingJsonBuilder.StreamingJsonDelegate(Writer w, boolean first, JsonGenerator generator)
Method Detail
public void call(String name, List<Object> list)
Writes the name and a JSON array
- throws:
- IOException
- Parameters:
-
name
- The name of the JSON attribute -
list
- The list representing the array
public void call(String name, Object... array)
Writes the name and a JSON array
- throws:
- IOException
- Parameters:
-
name
- The name of the JSON attribute -
array
- The list representing the array
public void call(String name, Iterable coll, @DelegatesTo(StreamingJsonDelegate.class) 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
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"}]}}' }
- Parameters:
-
coll
- a collection -
c
- a closure used to convert the objects of coll
public void call(String name, Collection coll, @DelegatesTo(StreamingJsonDelegate.class) Closure c)
Delegates to call(String, Iterable, Closure)
public void call(String name, Object value)
Writes the name and value of a JSON attribute
- throws:
- IOException
- Parameters:
-
name
- The attribute name -
value
- The value
public void call(String name, Object value, @DelegatesTo(StreamingJsonDelegate.class) Closure callable)
Writes the name and value of a JSON attribute
- throws:
- IOException
- Parameters:
-
name
- The attribute name -
value
- The value
public void call(String name, @DelegatesTo(StreamingJsonDelegate.class) Closure value)
Writes the name and another JSON object
- throws:
- IOException
- Parameters:
-
name
- The attribute name -
value
- The value
public void call(String name, JsonUnescaped json)
Writes an unescaped value. Note: can cause invalid JSON if passed JSON is invalid
- throws:
- IOException
- Parameters:
-
name
- The attribute name -
json
- The value
public void call(String name, Writable json)
Writes the given Writable as the value of the given attribute name
- throws:
- IOException
- Parameters:
-
name
- The attribute name -
json
- The writable value
public static void cloneDelegateAndGetContent(Writer w, @DelegatesTo(StreamingJsonDelegate.class) Closure c)
public static void cloneDelegateAndGetContent(Writer w, @DelegatesTo(StreamingJsonDelegate.class) Closure c, boolean first)
public static void curryDelegateAndGetContent(Writer w, @DelegatesTo(StreamingJsonDelegate.class) Closure c, Object o)
public static void curryDelegateAndGetContent(Writer w, @DelegatesTo(StreamingJsonDelegate.class) Closure c, Object o, boolean first)
public Writer getWriter()
- Returns:
- Obtains the current writer
public Object invokeMethod(String name, Object args)
public static boolean isCollectionWithClosure(Object[] args)
protected void verifyValue()
protected void writeArray(List<Object> list)
public static Object writeCollectionWithClosure(Writer writer, Collection coll, @DelegatesTo(StreamingJsonDelegate.class) Closure closure)
protected void writeName(String name)
protected void writeValue(Object value)
© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/2.5.14/html/gapi/groovy/json/StreamingJsonBuilder.StreamingJsonDelegate.html