JsonInput

@FunctionalInterface
trait JsonInput[T]

Defines JSON input conversion.

import scala.language.implicitConversions

import grapple.json.{ *, given }

case class User(id: Int, name: String)

// Define how to convert JsonValue to User
given userInput: JsonInput[User] =
 case json: JsonObject => User(json("id"), json("name"))
 case _                => throw IllegalArgumentException("Expected JSON object")

val json = Json.obj("id" -> 0, "name" -> "root")
assert { json.as[User] == User(0, "root") }
See also
class Object
trait Matchable
class Any

Value members

Abstract methods

def read(value: JsonValue): T

Converts JSON value.

Converts JSON value.