WithOptions

play.api.libs.json.Json$.WithOptions
final class WithOptions[Opts <: MacroOptions](val config: Aux[Opts]) extends JsonFacade, JsMacrosWithOptions[Opts]

JSON facade with some macro options.

Type parameters

Opts

the compile-time options

Attributes

Graph
Supertypes
trait JsMacrosWithOptions[Opts]
trait JsonFacade
class Object
trait Matchable
class Any

Members list

Value members

Constructors

def this()

Concrete methods

def arr(items: JsValueWrapper*): JsArray

Returns a JsArray with given items.

Returns a JsArray with given items.

Attributes

def asciiStringify(json: JsValue): String

Converts a JsValue to its string representation, escaping all non-ascii characters using \u005CuXXXX syntax.

Converts a JsValue to its string representation, escaping all non-ascii characters using \u005CuXXXX syntax.

This is particularly useful when the output JSON will be executed as javascript, since JSON is not a strict subset of javascript (see JSON: The JavaScript subset that isn't).

import play.api.libs.json.{ Json, JsString }

Json.asciiStringify(JsString("some\\u005Ctext\\u005C"))
// => "some\\u005Ctext\\u005C"

Json.stringify(JsString("some\\u005Ctext\\u005C"))
// => "sometext"

$jsonParam $returnStringRepr with all non-ascii characters escaped.

Attributes

def fromJson[T](json: JsValue)(implicit fjs: Reads[T]): JsResult[T]

Converts a JsValue to a value of requested type T.

Converts a JsValue to a value of requested type T.

Type parameters

T

The type of conversion result, only supported if a Reads implicit is available for. $jsonParam

Attributes

def obj(fields: (String, JsValueWrapper)*): JsObject

Returns a JsObject with given fields.

Returns a JsObject with given fields.

Value parameters

fields

the object fields specified as pairs of name and value

Attributes

def parse(input: String): JsValue

Parses a String representing a JSON input, and returns it as a JsValue.

Parses a String representing a JSON input, and returns it as a JsValue.

Value parameters

input

the String to parse

Attributes

def parse(input: InputStream): JsValue

Parses a stream representing a JSON input, and returns it as a JsValue.

Parses a stream representing a JSON input, and returns it as a JsValue.

Value parameters

input

the InputStream to parse

Attributes

def parse(input: Array[Byte]): JsValue

Parses some bytes representing a JSON input, and returns it as a JsValue.

Parses some bytes representing a JSON input, and returns it as a JsValue.

The character encoding used will be automatically detected as UTF-8, UTF-16 or UTF-32, as per the heuristics in RFC-4627.

Value parameters

input

the byte array to parse

Attributes

def prettyPrint(json: JsValue): String

Converts a JsValue to its pretty string representation using default pretty printer (line feeds after each fields and 2-spaces indentation).

Converts a JsValue to its pretty string representation using default pretty printer (line feeds after each fields and 2-spaces indentation).

import play.api.libs.json.Json

val res0 = Json.obj(
 "field1" -> Json.obj(
   "field11" -> "value11",
   "field12" -> Json.arr("alpha", 123L)
 )
)
// => {"field1":{"field11":"value11","field12":["alpha",123]}}

Json.prettyPrint(res0)
// =>
// {
//   "field1" : {
//     "field11" : "value11",
//     "field12" : [ "alpha", 123 ]
//   }
// }

$jsonParam $returnStringRepr.

Attributes

def stringify(json: JsValue): String

Converts a JsValue to its string representation.

Converts a JsValue to its string representation.

import play.api.libs.json.Json

val input = Json.obj(
 "field1" -> Json.obj(
   "field11" -> "value11",
   "field12" -> Json.arr("alpha", 123L)
 )
)

Json.stringify(input)
// => {"field1":{"field11":"value11","field12":["alpha",123]}}

$jsonParam

Attributes

Returns

a String with the json representation

def toBytes(json: JsValue): Array[Byte]

Converts a JsValue to bytes (using UTF-8 encoding).

Converts a JsValue to bytes (using UTF-8 encoding).

$jsonParam

Attributes

Returns

an Array[Byte] representing the UTF-8-encoded JSON

def toJsObject[T](o: T)(implicit tjs: OWrites[T]): JsObject

Converts any object writeable value to a JsObject.

Converts any object writeable value to a JsObject.

A value is writeable as an object, if a OWrites implicit is available for its type.

Type parameters

T

the type of the value to be written as JsObject

Value parameters

o

the value to convert as JSON object

Attributes

def toJson[T](o: T)(implicit tjs: Writes[T]): JsValue

Converts any writeable value to a JsValue.

Converts any writeable value to a JsValue.

A value is writeable if a Writes implicit is available for its type.

Type parameters

T

the type of the value to be written as JSON

Value parameters

o

the value to convert as JSON

Attributes

Inherited methods

inline def format[A]: OFormat[A]

Attributes

Inherited from:
JsMacrosWithOptions
inline def reads[A]: Reads[A]

Attributes

Inherited from:
JsMacrosWithOptions
inline def writes[A]: OWrites[A]

Attributes

Inherited from:
JsMacrosWithOptions

Concrete fields

val config: Aux[Opts]