JsonGenerator

trait JsonGenerator extends AutoCloseable

Defines JSON generator.

import java.io.StringWriter

import scala.language.implicitConversions

import grapple.json.{ *, given }

val buf = StringWriter()
val out = JsonGenerator(buf)

try
 out.writeStartObject()          // start root object
 out.write("id", 1000)
 out.write("name", "lupita")
 out.writeStartArray("groups")   // start nested array
 out.write("lupita")
 out.write("admin")
 out.write("sudoer")
 out.writeEnd()                  // end nested array
 out.writeStartObject("info")    // start nested object
 out.write("home", "/home/lupita")
 out.write("storage", "8 GiB")
 out.writeEnd()                  // end nested object
 out.writeEnd()                  // end root object
 out.flush()

 val json = Json.parse(buf.toString)
 assert { json("id") == JsonNumber(1000) }
 assert { json("name") == JsonString("lupita") }
 assert { json("groups") == Json.arr("lupita", "admin", "sudoer") }
 assert { json("info") == Json.obj("home" -> "/home/lupita", "storage" -> "8 GiB") }
finally
 out.close()
See also:
Companion:
object
trait AutoCloseable
class Object
trait Matchable
class Any

Value members

Abstract methods

def close(): Unit

Closes writer.

Closes writer.

def flush(): Unit

Flushes writer.

Flushes writer.

def write(name: String, value: JsonValue): JsonGenerator

Writes field to object context.

Writes field to object context.

Value parameters:
name

field name

value

JSON value

Writes value to array context.

Writes value to array context.

Value parameters:
value

JSON value

Writes closing brace or bracket based on current context.

Writes closing brace or bracket based on current context.

def writeStartArray(name: String): JsonGenerator

Writes field declaration and opening bracket to start array context.

Writes field declaration and opening bracket to start array context.

Value parameters:
name

field name

Writes opening bracket to start array context.

Writes opening bracket to start array context.

def writeStartObject(name: String): JsonGenerator

Writes field declaration and opening brace to start object context.

Writes field declaration and opening brace to start object context.

Value parameters:
name

field name

Writes opening brace to start object context.

Writes opening brace to start object context.

Concrete methods

def write(name: String, value: String): JsonGenerator

Writes field to object context.

Writes field to object context.

def write(name: String, value: Byte): JsonGenerator

Writes field to object context.

Writes field to object context.

def write(name: String, value: Short): JsonGenerator

Writes field to object context.

Writes field to object context.

def write(name: String, value: Int): JsonGenerator

Writes field to object context.

Writes field to object context.

def write(name: String, value: Long): JsonGenerator

Writes field to object context.

Writes field to object context.

def write(name: String, value: Float): JsonGenerator

Writes field to object context.

Writes field to object context.

def write(name: String, value: Double): JsonGenerator

Writes field to object context.

Writes field to object context.

def write(name: String, value: BigInt): JsonGenerator

Writes field to object context.

Writes field to object context.

def write(name: String, value: BigDecimal): JsonGenerator

Writes field to object context.

Writes field to object context.

def write(name: String, value: Boolean): JsonGenerator

Writes field to object context.

Writes field to object context.

def write(value: String): JsonGenerator

Writes value to array context.

Writes value to array context.

Value parameters:
value

JSON value

def write(value: Byte): JsonGenerator

Writes value to array context.

Writes value to array context.

def write(value: Short): JsonGenerator

Writes value to array context.

Writes value to array context.

def write(value: Int): JsonGenerator

Writes value to array context.

Writes value to array context.

def write(value: Long): JsonGenerator

Writes value to array context.

Writes value to array context.

def write(value: Float): JsonGenerator

Writes value to array context.

Writes value to array context.

def write(value: Double): JsonGenerator

Writes value to array context.

Writes value to array context.

def write(value: BigInt): JsonGenerator

Writes value to array context.

Writes value to array context.

def write(value: BigDecimal): JsonGenerator

Writes value to array context.

Writes value to array context.

def write(value: Boolean): JsonGenerator

Writes value to array context.

Writes value to array context.

def writeNull(name: String): JsonGenerator

Writes field with null value to object context.

Writes field with null value to object context.

Value parameters:
name

field name

Writes null value to array context.

Writes null value to array context.