Package groovy.json

# Class StreamingJsonBuilder.StreamingJsonDelegate

java.lang.Object
groovy.lang.GroovyObjectSupport
groovy.json.StreamingJsonBuilder.StreamingJsonDelegate

All Implemented Interfaces:
  `GroovyObject`

Enclosing class:
  StreamingJsonBuilder

    public static class StreamingJsonBuilder.StreamingJsonDelegate
    extends GroovyObjectSupport

The delegate used when invoking closures

- ## Field Summary

  Fields
  Modifier and Type | Field | Description
  --- | --- | ---
  `protected boolean` | `first` |
  `protected groovy.json.StreamingJsonBuilder.StreamingJsonDelegate.State` | `state` |
  `protected Writer` | `writer` |

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `StreamingJsonDelegate​(Writer w, boolean first)` |
  `StreamingJsonDelegate​(Writer w, boolean first, JsonGenerator generator)` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `call​(String name, JsonOutput.JsonUnescaped json)` | Writes an unescaped value.
  `void` | `call​(String name, Closure value)` | Writes the name and another JSON object
  `void` | `call​(String name, Writable json)` | Writes the given Writable as the value of the given attribute name
  `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, Object value)` | Writes the name and value of a JSON attribute
  `void` | `call​(String name, Object... array)` | Writes the name and a JSON array
  `void` | `call​(String name, Object value, Closure callable)` | Writes the name and value of a JSON attribute
  `void` | `call​(String name, Collection coll, Closure c)` | Delegates to `call(String, Iterable, Closure)`
  `void` | `call​(String name, List<Object> list)` | Writes the name and a JSON array
  `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)` |

  ### Methods inherited from class groovy.lang.GroovyObjectSupport

  `getMetaClass, setMetaClass`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface groovy.lang.GroovyObject

  `getProperty, setProperty`

- ## Field Details

  - ### writer

    protected final Writer writer

  - ### first

    protected boolean first

  - ### state

    protected groovy.json.StreamingJsonBuilder.StreamingJsonDelegate.State state

- ## Constructor Details

  - ### StreamingJsonDelegate

    public StreamingJsonDelegate​(Writer w, boolean first)

  - ### StreamingJsonDelegate

    public StreamingJsonDelegate​(Writer w, boolean first, JsonGenerator generator)

- ## Method Details

  - ### getWriter

    public Writer getWriter()
    Returns:
      Obtains the current writer

  - ### invokeMethod

    public Object invokeMethod​(String name, Object args)
    Description copied from interface: `GroovyObject`
    Invokes the given method.
    Parameters:
      `name` - the name of the method to call
      `args` - the arguments to use for the method call
    Returns:
      the result of invoking the method

  - ### call

    public void call​(String name, List<Object> list) throws IOException
    Writes the name and a JSON array
    Parameters:
      `name` - The name of the JSON attribute
      `list` - The list representing the array
    Throws:
      `IOException`

  - ### call

    public void call​(String name, Object... array) throws IOException
    Writes the name and a JSON array
    Parameters:
      `name` - The name of the JSON attribute
      `array` - The list representing the array
    Throws:
      `IOException`

  - ### call

    public void call​(String name, Iterable coll, @DelegatesTo(value=StreamingJsonDelegate.class,strategy=1) Closure c) throws IOException
    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
    Throws:
      `IOException`

  - ### call

    public void call​(String name, Collection coll, @DelegatesTo(value=StreamingJsonDelegate.class,strategy=1) Closure c) throws IOException
    Delegates to `call(String, Iterable, Closure)`
    Throws:
      `IOException`

  - ### call

    public void call​(String name, Object value) throws IOException
    Writes the name and value of a JSON attribute
    Parameters:
      `name` - The attribute name
      `value` - The value
    Throws:
      `IOException`

  - ### call

    public void call​(String name, Object value, @DelegatesTo(value=StreamingJsonDelegate.class,strategy=1) Closure callable) throws IOException
    Writes the name and value of a JSON attribute
    Parameters:
      `name` - The attribute name
      `value` - The value
    Throws:
      `IOException`

  - ### call

    public void call​(String name, @DelegatesTo(value=StreamingJsonDelegate.class,strategy=1) Closure value) throws IOException
    Writes the name and another JSON object
    Parameters:
      `name` - The attribute name
      `value` - The value
    Throws:
      `IOException`

  - ### call

    public void call​(String name, JsonOutput.JsonUnescaped json) throws IOException
    Writes an unescaped value. Note: can cause invalid JSON if passed JSON is invalid
    Parameters:
      `name` - The attribute name
      `json` - The value
    Throws:
      `IOException`

  - ### call

    public void call​(String name, Writable json) throws IOException
    Writes the given Writable as the value of the given attribute name
    Parameters:
      `name` - The attribute name
      `json` - The writable value
    Throws:
      `IOException`

  - ### verifyValue

    protected void verifyValue()

  - ### writeName

    protected void writeName​(String name) throws IOException
    Throws:
      `IOException`

  - ### writeValue

    protected void writeValue​(Object value) throws IOException
    Throws:
      `IOException`

  - ### writeArray

    protected void writeArray​(List<Object> list) throws IOException
    Throws:
      `IOException`

  - ### isCollectionWithClosure

    public static boolean isCollectionWithClosure​(Object[] args)

  - ### writeCollectionWithClosure

    public static Object writeCollectionWithClosure​(Writer writer, Collection coll, @DelegatesTo(value=StreamingJsonDelegate.class,strategy=1) Closure closure) throws IOException
    Throws:
      `IOException`

  - ### cloneDelegateAndGetContent

    public static void cloneDelegateAndGetContent​(Writer w, @DelegatesTo(value=StreamingJsonDelegate.class,strategy=1) Closure c)

  - ### cloneDelegateAndGetContent

    public static void cloneDelegateAndGetContent​(Writer w, @DelegatesTo(value=StreamingJsonDelegate.class,strategy=1) Closure c, boolean first)

  - ### curryDelegateAndGetContent

    public static void curryDelegateAndGetContent​(Writer w, @DelegatesTo(value=StreamingJsonDelegate.class,strategy=1) Closure c, Object o)

  - ### curryDelegateAndGetContent

    public static void curryDelegateAndGetContent​(Writer w, @DelegatesTo(value=StreamingJsonDelegate.class,strategy=1) Closure c, Object o, boolean first)