Package

reactivemongo.play.json

compat

Permalink

package compat

Implicit conversions for handler & value types between play.api.libs.json and reactivemongo.api.bson.

import play.api.libs.json.JsValue
import reactivemongo.api.bson.BSONValue

import reactivemongo.play.json.compat._

def foo(v: BSONValue): JsValue = v // ValueConverters.fromValue

For more specific imports, see ValueConverters and HandlerConverters.

Linear Supertypes
HandlerConverters, LowPriorityHandlerConverters1, LowPriorityHandlerConverters2, LowPriorityHandlerConverters3, ValueConverters, LowPriority1Converters, SharedValueConverters, SharedValueConvertersLowPriority1, PackageCompat, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. compat
  2. HandlerConverters
  3. LowPriorityHandlerConverters1
  4. LowPriorityHandlerConverters2
  5. LowPriorityHandlerConverters3
  6. ValueConverters
  7. LowPriority1Converters
  8. SharedValueConverters
  9. SharedValueConvertersLowPriority1
  10. PackageCompat
  11. AnyRef
  12. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait HandlerConverters extends LowPriorityHandlerConverters1

    Permalink

    Implicit conversions for handler types between play.api.libs.json and reactivemongo.api.bson .

    Implicit conversions for handler types between play.api.libs.json and reactivemongo.api.bson .

    import reactivemongo.play.json.compat.HandlerConverters._
    
    def foo[T](jw: play.api.libs.json.OWrites[T]) = {
      val w: reactivemongo.api.bson.BSONDocumentWriter[T] = jw
      w
    }
    
    def bar[T](br: reactivemongo.api.bson.BSONReader[T]) = {
      val r: play.api.libs.json.Reads[T] = br
      r
    }

    Note: Logger reactivemongo.api.play.json.HandlerConverters can be used to debug.

  2. trait ValueConverters extends SharedValueConverters with LowPriority1Converters

    Permalink

    Implicit conversions for value types between play.api.libs.json and reactivemongo.api.bson.

    Implicit conversions for value types between play.api.libs.json and reactivemongo.api.bson.

    import play.api.libs.json.JsValue
    import reactivemongo.api.bson.BSONValue
    import reactivemongo.play.json.compat.ValueConverters._
    
    def foo(v: BSONValue): JsValue =
      implicitly[JsValue](v) // ValueConverters.fromValue
    
    def bar(v: JsValue): BSONValue =
      implicitly[BSONValue](v) // ValueConverters.toValue

    Note: Logger reactivemongo.api.play.json.ValueConverters can be used to debug.

Value Members

  1. object ExtendedJsonConverters extends ExtendedJsonCompat with SharedValueConverters with LowPriority1ExtendedJson

    Permalink

  2. object HandlerConverters extends HandlerConverters

    Permalink

    See compat$ and HandlerConverters

  3. object JavaScriptObject

    Permalink

    See syntax

    See syntax

    Definition Classes
    SharedValueConverters
  4. object JavaScriptWSObject

    Permalink

    See syntax

    See syntax

    Definition Classes
    SharedValueConverters
  5. lazy val JsFalse: JsBoolean

    Permalink
    Definition Classes
    PackageCompat
  6. lazy val JsTrue: JsBoolean

    Permalink
    Definition Classes
    PackageCompat
  7. object ValueConverters extends ValueConverters

    Permalink

    See compat$ and ValueConverters.

    See compat$ and ValueConverters.

    Note that as there is not a JSON equivalent for each BSON value (BSONDateTime, or even distinction between BSON long/int).

    So for example, using the default JSON handlers, a same Long property can be written in some documents as BSON long (NumberLong), and in some other as BSON integer (see ValueConverters.toNumber), which is ok to read all these documents, but can impact the MongoDB queries (same for date/time values that will be serialized as BSON string, rather than BSON date/time or timestamp).

  8. object dsl

    Permalink

    DSL for MongoDB Extended JSON syntax (v2).

    DSL for MongoDB Extended JSON syntax (v2).

    import play.api.libs.json.Json
    import reactivemongo.play.json.compat.dsl._
    
    Json.obj("int" -> int(1), "double" -> double(2.3D))
    // {
    //   "int": { "$numberInt": "1" },
    //   "double": { "$numberDouble": "2.3" }
    // }
  9. implicit def fromArray(bson: BSONArray): JsArray

    Permalink
    Definition Classes
    SharedValueConverters
  10. implicit final def fromBinary(bin: BSONBinary): JsObject

    Permalink

    See syntax:

    See syntax:

    { "$binary": { "base64": "<payload>", "subType": "<t>" } }

    Definition Classes
    SharedValueConverters
  11. implicit final def fromBoolean(bson: BSONBoolean): JsBoolean

    Permalink
    Definition Classes
    SharedValueConverters
  12. implicit final def fromDateTime(bson: BSONDateTime): JsObject

    Permalink

    See syntax:

    See syntax:

    { "$date": { "$numberLong": "<millis>" } }

    Definition Classes
    SharedValueConverters
  13. implicit final def fromDecimal(bson: BSONDecimal): JsObject

    Permalink

    See syntax:

    See syntax:

    { "$numberDecimal": "<number>" }

    Definition Classes
    SharedValueConverters
  14. implicit def fromDocument(bson: BSONDocument): JsObject

    Permalink

    Converts to a JSON object

    Converts to a JSON object

    Definition Classes
    SharedValueConverters
  15. implicit final def fromDocumentHandler[T](h: BSONDocumentHandler[T]): OFormat[T]

    Permalink

    Implicit conversion from new BSONDocumentHandler to Play JSON.

    Implicit conversion from new BSONDocumentHandler to Play JSON.

    import reactivemongo.play.json.compat.HandlerConverters.fromDocumentHandler
    
    def bar[T](bh: reactivemongo.api.bson.BSONDocumentHandler[T]) = {
      val h: play.api.libs.json.OFormat[T] = bh
      h
    }
    Definition Classes
    HandlerConverters
  16. implicit final def fromDocumentWriter[T](w: BSONDocumentWriter[T]): OWrites[T]

    Permalink

    import reactivemongo.play.json.compat.HandlerConverters.fromDocumentWriter
    
    def bar[T](lw: reactivemongo.api.bson.BSONDocumentWriter[T]) = {
      val w: play.api.libs.json.OWrites[T] = lw
      w
    }
    Definition Classes
    LowPriorityHandlerConverters2
  17. implicit final def fromDouble(bson: BSONDouble): JsNumber

    Permalink
    Definition Classes
    ValueConverters
  18. implicit final def fromHandler[T](h: BSONHandler[T]): Format[T]

    Permalink
    Definition Classes
    LowPriorityHandlerConverters1
  19. implicit final def fromInteger(bson: BSONInteger): JsNumber

    Permalink
    Definition Classes
    ValueConverters
  20. implicit final def fromJavaScript(bson: BSONJavaScript): JsObject

    Permalink

    See syntax:

    See syntax:

    { "$code": "<javascript>" }

    Definition Classes
    SharedValueConverters
  21. implicit final def fromJavaScriptWS(bson: BSONJavaScriptWS): JsObject

    Permalink

    See syntax:

    See syntax:

    { "$code": "<javascript>", "$scope": { } }

    Definition Classes
    SharedValueConverters
  22. implicit final def fromLong(bson: BSONLong): JsNumber

    Permalink
    Definition Classes
    ValueConverters
  23. implicit final val fromMaxKey: (BSONMaxKey) ⇒ JsObject

    Permalink

    See syntax:

    See syntax:

    { "$maxKey": 1 }

    Definition Classes
    SharedValueConverters
  24. implicit final val fromMinKey: (BSONMinKey) ⇒ JsObject

    Permalink

    See syntax:

    See syntax:

    { "$minKey": 1 }

    Definition Classes
    SharedValueConverters
  25. implicit val fromNull: (BSONNull) ⇒ JsNull.type

    Permalink
    Definition Classes
    SharedValueConverters
  26. implicit final def fromObject(js: JsObject): BSONValue

    Permalink

    First checks whether an explicit type (e.g.

    First checks whether an explicit type (e.g. $binary) is specified, otherwise converts to a BSON document.

    Definition Classes
    SharedValueConverters
  27. implicit final def fromObjectID(bson: BSONObjectID): JsObject

    Permalink

    See syntax:

    See syntax:

    { "$oid": "<ObjectId bytes>" }

    Definition Classes
    SharedValueConverters
  28. implicit final def fromReader[T](implicit r: BSONReader[T]): Reads[T]

    Permalink

    Provided there is a BSON reader, a JSON one is resolved.

    Provided there is a BSON reader, a JSON one is resolved.

    import play.api.libs.json.Reads
    import reactivemongo.api.bson.BSONReader
    import reactivemongo.play.json.compat.fromReader
    
    def foo[T: BSONReader]: Reads[T] = implicitly[Reads[T]]
    Definition Classes
    LowPriorityHandlerConverters3
  29. implicit final def fromReaderConv[T](r: BSONReader[T]): Reads[T]

    Permalink
    Definition Classes
    LowPriorityHandlerConverters3
  30. implicit final def fromRegex(rx: BSONRegex): JsObject

    Permalink

    See syntax:

    See syntax:

    { "$regularExpression": { "pattern": "<regexPattern>", "options": "<options>" } }

    Definition Classes
    SharedValueConverters
  31. implicit final def fromStr(bson: BSONString): JsString

    Permalink
    Definition Classes
    SharedValueConverters
  32. implicit final def fromSymbol(bson: BSONSymbol): JsObject

    Permalink

    See syntax:

    See syntax:

    { "$symbol": "<name>" }

    Definition Classes
    SharedValueConverters
  33. implicit final def fromTimestamp(ts: BSONTimestamp): JsObject

    Permalink

    See syntax:

    See syntax:

    { "$timestamp": {"t": <t>, "i": } }`

    Definition Classes
    SharedValueConverters
  34. implicit final val fromUndefined: (BSONUndefined) ⇒ JsObject

    Permalink

    See syntax:

    See syntax:

    { "$undefined": true }

    Definition Classes
    SharedValueConverters
  35. implicit final def fromValue(bson: BSONValue): JsValue

    Permalink
    Definition Classes
    LowPriority1Converters
  36. implicit final def fromWriterConv[T](w: BSONWriter[T]): Writes[T]

    Permalink
    Definition Classes
    LowPriorityHandlerConverters3
  37. implicit def jsonReaderNewValue[B <: BSONValue, L](implicit r: BSONReader[B], conv: (B) ⇒ L): Reads[L]

    Permalink

    Based on the compatibility conversions, provides instances of Play JSON Reads for the new BSON value API.

    Based on the compatibility conversions, provides instances of Play JSON Reads for the new BSON value API.

    Definition Classes
    HandlerConverters
  38. implicit def jsonWriterNewDocument[L](implicit conv: (L) ⇒ BSONDocument): OWrites[L]

    Permalink

    Based on the compatibility conversions, provides instances of Play JSON OWrites for the new BSON value API.

    Based on the compatibility conversions, provides instances of Play JSON OWrites for the new BSON value API.

    Definition Classes
    HandlerConverters
  39. implicit def jsonWriterNewValue[B <: BSONValue, L](implicit conv: (L) ⇒ B): Writes[L]

    Permalink

    Based on the compatibility conversions, provides instances of Play JSON Writes for the new BSON value API.

    Based on the compatibility conversions, provides instances of Play JSON Writes for the new BSON value API.

    import play.api.libs.json.Writes
    import reactivemongo.api.bson.BSONObjectID
    import reactivemongo.play.json.compat.jsonWriterNewValue
    
    val w = implicitly[Writes[BSONObjectID]]
    Definition Classes
    LowPriorityHandlerConverters1
  40. implicit final def toArray(js: JsArray): BSONArray

    Permalink
    Definition Classes
    SharedValueConverters
  41. implicit final def toBoolean(js: JsBoolean): BSONBoolean

    Permalink
    Definition Classes
    SharedValueConverters
  42. implicit final def toDocument(js: JsObject): BSONDocument

    Permalink

    See toValue

    Definition Classes
    SharedValueConvertersLowPriority1
  43. implicit final def toDocumentHandler[T](h: OFormat[T]): BSONDocumentHandler[T]

    Permalink

    Implicit conversion from Play JSON OFormat to the BSON API.

    Implicit conversion from Play JSON OFormat to the BSON API.

    import reactivemongo.play.json.compat.HandlerConverters.toDocumentHandler
    
    def foo[T](jh: play.api.libs.json.OFormat[T]) = {
      val h: reactivemongo.api.bson.BSONDocumentHandler[T] = jh
      h
    }
    Definition Classes
    HandlerConverters
  44. final def toDocumentReaderConv[T](r: Reads[T]): BSONDocumentReader[T]

    Permalink

    Raises a JsError is the JSON value is not a JsObject.

    Raises a JsError is the JSON value is not a JsObject.

    import reactivemongo.play.json.compat.toDocumentReaderConv
    
    def lorem[T](jr: play.api.libs.json.Reads[T]) =
      toDocumentReaderConv(jr)
    Definition Classes
    LowPriorityHandlerConverters3
  45. implicit final def toDocumentWriter[T](implicit w: OWrites[T]): BSONDocumentWriter[T]

    Permalink

    Provided there is a Play JSON OWrites, resolve a document writer.

    Provided there is a Play JSON OWrites, resolve a document writer.

    import play.api.libs.json.OWrites
    import reactivemongo.api.bson.BSONDocumentWriter
    import reactivemongo.play.json.compat.toDocumentWriter
    
    def foo[T : OWrites]: BSONDocumentWriter[T] =
      implicitly[BSONDocumentWriter[T]]
    Definition Classes
    LowPriorityHandlerConverters2
    See also

    toDocumentWriterConv

  46. implicit final def toDocumentWriterConv[T](w: OWrites[T]): BSONDocumentWriter[T]

    Permalink

    import reactivemongo.play.json.compat.HandlerConverters.toDocumentWriterConv
    
    def foo[T](jw: play.api.libs.json.OWrites[T]) = {
      val w: reactivemongo.api.bson.BSONDocumentWriter[T] = jw
      w
    }
    Definition Classes
    LowPriorityHandlerConverters2
  47. implicit final def toHandler[T](h: Format[T]): BSONHandler[T]

    Permalink
    Definition Classes
    LowPriorityHandlerConverters1
  48. implicit val toNull: (JsNull.type) ⇒ BSONNull

    Permalink
    Definition Classes
    SharedValueConverters
  49. implicit final def toNumber(js: JsNumber): BSONValue

    Permalink

    If the number:

    If the number:

    - is not whole then it's converted to BSON double, - is a valid integer then it's converted to a BSON integer (int32), - otherwise it's converted to a BSON long integer (int64).

    Definition Classes
    SharedValueConverters
  50. implicit final def toReader[T](implicit r: Reads[T]): BSONReader[T]

    Permalink

    Provided there is a Play JSON Reads, resolve a BSON reader.

    Provided there is a Play JSON Reads, resolve a BSON reader.

    import play.api.libs.json.Reads
    import reactivemongo.api.bson.BSONReader
    import reactivemongo.play.json.compat.toReader
    
    def foo[T: Reads]: BSONReader[T] = implicitly[BSONReader[T]]
    Definition Classes
    LowPriorityHandlerConverters2
    See also

    toDocumentWriterConv

  51. implicit final def toReaderConv[T](r: Reads[T]): BSONReader[T]

    Permalink

    Converts a Play JSON Reads to a BSON reader.

    Converts a Play JSON Reads to a BSON reader.

    import play.api.libs.json.Reads
    import reactivemongo.api.bson.BSONReader
    import reactivemongo.play.json.compat.toReaderConv
    
    def foo[T](implicit r: Reads[T]): BSONReader[T] = r
    Definition Classes
    LowPriorityHandlerConverters2
    See also

    toDocumentWriterConv

  52. implicit final def toStr(js: JsString): BSONValue

    Permalink
    Definition Classes
    SharedValueConverters
  53. implicit final def toValue(js: JsValue): BSONValue

    Permalink
    Definition Classes
    SharedValueConvertersLowPriority1
  54. implicit final def toWriter[T](w: Writes[T]): BSONWriter[T]

    Permalink
    Definition Classes
    LowPriorityHandlerConverters3

Inherited from HandlerConverters

Inherited from LowPriorityHandlerConverters1

Inherited from LowPriorityHandlerConverters2

Inherited from LowPriorityHandlerConverters3

Inherited from ValueConverters

Inherited from LowPriority1Converters

Inherited from SharedValueConverters

Inherited from SharedValueConvertersLowPriority1

Inherited from PackageCompat

Inherited from AnyRef

Inherited from Any

Ungrouped