JsonInput
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