class
BsonSerializer extends BaseJsonSerializer with Logging
Instance Constructors
-
new
BsonSerializer(buffer: ByteBuffer = ..., charset: Charset = utf8, root: String = "$", pathDelimiter: String = ".")
Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: Any): Boolean
-
val
BINARY_SUBTYPE_BINARY_OLD: Byte
-
val
BINARY_SUBTYPE_FUNCTION: Byte
-
val
BINARY_SUBTYPE_GENERIC: Byte
-
val
BINARY_SUBTYPE_MD5: Byte
-
val
BINARY_SUBTYPE_USER_DEFINED: Byte
-
val
BINARY_SUBTYPE_UUID: Byte
-
val
BINARY_SUBTYPE_UUID_OLD: Byte
-
val
END_OF_DOCUMENT: Byte
-
val
END_OF_STRING: Byte
-
val
FALSE: Byte
-
val
TRUE: Byte
-
val
TYPE_ARRAY: Byte
-
val
TYPE_BINARY: Byte
-
val
TYPE_BOOLEAN: Byte
-
val
TYPE_DATETIME: Byte
-
val
TYPE_DBPOINTER: Byte
-
val
TYPE_DOCUMENT: Byte
-
val
TYPE_DOUBLE: Byte
-
val
TYPE_INT32: Byte
-
val
TYPE_INT64: Byte
-
val
TYPE_JAVASCRIPT: Byte
-
val
TYPE_JAVASCRIPT_WITH_SCOPE: Byte
-
val
TYPE_MAXKEY: Byte
-
val
TYPE_MINKEY: Byte
-
val
TYPE_NULL: Byte
-
val
TYPE_OBJECTID: Byte
-
val
TYPE_REGEX: Byte
-
val
TYPE_STRING: Byte
-
val
TYPE_SYMBOL: Byte
-
val
TYPE_TIMESTAMP: Byte
-
val
TYPE_UNDEFINED: Byte
-
final
def
asInstanceOf[T0]: T0
-
def
binary(buffer: ByteBuffer): JsValue
-
def
boolean(buffer: ByteBuffer): JsBoolean
-
val
charset: Charset
-
def
clear: Unit
-
def
clone(): AnyRef
-
def
cstring(buffer: ByteBuffer): String
-
def
date(buffer: ByteBuffer): JsDate
-
def
deserialize(buffer: ByteBuffer): JsValue
-
def
deserialize(buffer: ByteBuffer, json: JsObject): JsObject
-
def
deserialize(bytes: Array[Byte]): JsValue
-
def
deserialize(values: Map[String, Array[Byte]], rootJsonPath: String): JsValue
-
def
double(buffer: ByteBuffer): JsDouble
-
def
ename(buffer: ByteBuffer): String
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
def
int(buffer: ByteBuffer): JsInt
-
final
def
isInstanceOf[T0]: Boolean
-
lazy val
log: Logger
-
def
long(buffer: ByteBuffer): JsLong
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
val
null: Array[Byte]
-
def
objectId(buffer: ByteBuffer): JsValue
-
val
pathDelimiter: String
-
def
put(json: JsValue): Unit
-
val
root: String
-
def
serialize(buffer: ByteBuffer, json: JsArray, ename: Option[String]): Unit
-
def
serialize(buffer: ByteBuffer, json: JsObject, ename: Option[String]): Unit
-
def
serialize(json: JsValue, rootJsonPath: String): Map[String, Array[Byte]]
-
def
serialize(buffer: ByteBuffer, json: JsBinary, ename: Option[String]): Unit
-
def
serialize(buffer: ByteBuffer, json: JsUUID, ename: Option[String]): Unit
-
def
serialize(buffer: ByteBuffer, json: JsObjectId, ename: Option[String]): Unit
-
def
serialize(buffer: ByteBuffer, json: JsDate, ename: Option[String]): Unit
-
def
serialize(buffer: ByteBuffer, json: JsString, ename: Option[String]): Unit
-
def
serialize(buffer: ByteBuffer, json: JsDouble, ename: Option[String]): Unit
-
def
serialize(buffer: ByteBuffer, json: JsLong, ename: Option[String]): Unit
-
def
serialize(buffer: ByteBuffer, json: JsInt, ename: Option[String]): Unit
-
def
serialize(buffer: ByteBuffer, json: JsBoolean, ename: Option[String]): Unit
-
def
serialize(buffer: ByteBuffer, string: String): Unit
-
def
serialize(buffer: ByteBuffer, string: Option[String]): Unit
-
def
str2Bytes(s: String): Array[Byte]
-
def
str2Path(path: String): String
-
def
str2PathBytes(path: String): Array[Byte]
-
def
string(buffer: ByteBuffer): JsString
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toBytes: Array[Byte]
-
def
toString(): String
-
val
undefined: Array[Byte]
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Inherited from Logging
Inherited from AnyRef
Inherited from Any
JSON Serializer in BSON format as defined by http://bsonspec.org/spec.html. This is not fully compatible with BSON spec, where the root must be a document/JsObject. In contrast, the root can be any JsValue in our implementation. Correspondingly, the root will always has the type byte as the first byte.
Not Multi-threading safe. Each thread should have its own BsonSerializer instance. Data size limit to 16MB by default.
ByteBuffer must use BIG ENDIAN to ensure the correct byte string comparison for integers and floating numbers.