Package

play.api.libs

json

Permalink

package json

Json API For example:

import play.api.libs.json._
import play.api.libs.functional.syntax._

case class User(id: Long, name: String, friends: Seq[User] = Seq.empty)
object User {

  // In this format, an undefined friends property is mapped to an empty list
  implicit val format: Format[User] = (
    (__ \ "id").format[Long] and
    (__ \ "name").format[String] and
    (__ \ "friends").lazyFormatNullable(implicitly[Format[Seq[User]]])
      .inmap[Seq[User]](_ getOrElse Seq.empty, Some(_))
  )(User.apply, unlift(User.unapply))
}

//then in a controller:

object MyController extends Controller {
   def displayUserAsJson(id: String) = Action {
      Ok(Json.toJson(User(id.toLong, "myName")))
   }
   def saveUser(jsonString: String)= Action {
     val user = Json.parse(jsonString).as[User]
     myDataStore.save(user)
     Ok
   }
}
Source
package.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. json
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. trait ConstraintFormat extends AnyRef

    Permalink
  2. trait ConstraintReads extends AnyRef

    Permalink
  3. trait ConstraintWrites extends AnyRef

    Permalink
  4. trait DefaultFormat extends AnyRef

    Permalink

    Default Json formatters.

  5. trait DefaultReads extends LowPriorityDefaultReads

    Permalink

    Default deserializer type classes.

  6. trait DefaultWrites extends AnyRef

    Permalink

    Default Serializers.

  7. trait Format[A] extends Writes[A] with Reads[A]

    Permalink

    Json formatter: write an implicit to define both a serializer and a deserializer for any type.

    Json formatter: write an implicit to define both a serializer and a deserializer for any type.

    Annotations
    @implicitNotFound( ... )
  8. case class IdxPathNode(idx: Int) extends PathNode with Product with Serializable

    Permalink
  9. case class JsArray(value: Seq[JsValue] = List()) extends JsValue with Product with Serializable

    Permalink

    Represent a Json array value.

  10. case class JsBoolean(value: Boolean) extends JsValue with Product with Serializable

    Permalink

    Represent a Json boolean value.

  11. final case class JsDefined(value: JsValue) extends AnyVal with JsLookupResult with Product with Serializable

    Permalink

    Wrapper for JsValue to represent an existing Json value.

  12. case class JsError(errors: Seq[(JsPath, Seq[ValidationError])]) extends JsResult[Nothing] with Product with Serializable

    Permalink
  13. final case class JsLookup(result: JsLookupResult) extends AnyVal with Product with Serializable

    Permalink

    A value representing the value at a particular JSON path, either an actual JSON node or undefined.

  14. sealed trait JsLookupResult extends JsReadable

    Permalink
  15. case class JsNumber(value: BigDecimal) extends JsValue with Product with Serializable

    Permalink

    Represent a Json number value.

  16. case class JsObject(underlying: Map[String, JsValue]) extends JsValue with Product with Serializable

    Permalink

    Represent a Json object value.

  17. case class JsPath(path: List[PathNode] = List()) extends Product with Serializable

    Permalink
  18. trait JsReadable extends Any

    Permalink

    A trait representing a Json node which can be read as an arbitrary type A using a Reads[A]

  19. sealed trait JsResult[+A] extends AnyRef

    Permalink
  20. case class JsResultException(errors: Seq[(JsPath, Seq[ValidationError])]) extends RuntimeException with Product with Serializable

    Permalink
  21. case class JsString(value: String) extends JsValue with Product with Serializable

    Permalink

    Represent a Json string value.

  22. case class JsSuccess[T](value: T, path: JsPath = JsPath()) extends JsResult[T] with Product with Serializable

    Permalink
  23. final class JsUndefined extends JsLookupResult

    Permalink

    Represent a missing Json value.

  24. sealed trait JsValue extends JsReadable

    Permalink

    Generic json value

  25. case class KeyPathNode(key: String) extends PathNode with Product with Serializable

    Permalink
  26. trait LowPriorityDefaultReads extends AnyRef

    Permalink

    Low priority reads.

    Low priority reads.

    This exists as a compiler performance optimisation, so that the compiler doesn't have to rule them out when DefaultReads provides a simple match.

    See https://github.com/playframework/playframework/issues/4313 for more details.

  27. trait OFormat[A] extends OWrites[A] with Reads[A] with Format[A]

    Permalink
  28. trait OWrites[-A] extends Writes[A]

    Permalink
    Annotations
    @implicitNotFound( ... )
  29. trait PathFormat extends AnyRef

    Permalink
  30. sealed trait PathNode extends AnyRef

    Permalink
  31. trait PathReads extends AnyRef

    Permalink
  32. trait PathWrites extends AnyRef

    Permalink
  33. trait Reads[A] extends AnyRef

    Permalink

    Json deserializer: write an implicit to define a deserializer for any type.

    Json deserializer: write an implicit to define a deserializer for any type.

    Annotations
    @implicitNotFound( ... )
  34. case class RecursiveSearch(key: String) extends PathNode with Product with Serializable

    Permalink
  35. trait Writes[-A] extends AnyRef

    Permalink

    Json serializer: write an implicit to define a serializer for any type

    Json serializer: write an implicit to define a serializer for any type

    Annotations
    @implicitNotFound( ... )

Value Members

  1. object Format extends PathFormat with ConstraintFormat with DefaultFormat

    Permalink

    Default Json formatters.

  2. object JsError extends Serializable

    Permalink
  3. object JsLookupResult

    Permalink
  4. object JsMacroImpl

    Permalink

    Implementation for the JSON macro.

  5. object JsNull extends JsValue with Product with Serializable

    Permalink

    Represents a Json null value.

  6. object JsObject extends Serializable

    Permalink
  7. object JsPath extends JsPath

    Permalink
  8. object JsResult

    Permalink
  9. object JsUndefined

    Permalink
  10. object JsValue

    Permalink
  11. object Json

    Permalink

    Helper functions to handle JsValues.

  12. object OFormat

    Permalink
  13. object OWrites extends PathWrites with ConstraintWrites

    Permalink
  14. object Reads extends ConstraintReads with PathReads with DefaultReads

    Permalink

    Default deserializer type classes.

  15. object Writes extends PathWrites with ConstraintWrites with DefaultWrites

    Permalink

    Default Serializers.

  16. val __: JsPath.type

    Permalink

    Alias for JsPath companion object

  17. package jackson

    Permalink
  18. package util

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped