Java BSON序列化程序/反序列化程序
是否有用于PHP或Java的BSON序列化程序/反序列化程序库?您可以检查这些语言的MongoDB驱动程序,因为MongoDB使用BSON。查看他们使用了什么,或者窃取了他们的实现。不是针对Java,而是针对Obj-C:Java BSON序列化程序/反序列化程序,java,php,bson,Java,Php,Bson,是否有用于PHP或Java的BSON序列化程序/反序列化程序库?您可以检查这些语言的MongoDB驱动程序,因为MongoDB使用BSON。查看他们使用了什么,或者窃取了他们的实现。不是针对Java,而是针对Obj-C: 另一种可能性是扩展,它增加了对BSON读/写的支持。Java中的BSON编码器/解码器非常简单。下面的代码片段来自我的应用程序,所以它在Scala中。我相信您可以很容易地从中构建Java实现 import org.bson.BSON import com.mongodb.{DB
另一种可能性是扩展,它增加了对BSON读/写的支持。Java中的BSON编码器/解码器非常简单。下面的代码片段来自我的应用程序,所以它在Scala中。我相信您可以很容易地从中构建Java实现
import org.bson.BSON
import com.mongodb.{DBObject, DBDecoder, DefaultDBDecoder}
def convert(dbo: DBObject): Array[Byte] =
BSON.encode(dbo)
// NB! this is a stateful object and thus it's not thread-safe, so have
// to create one per decoding
def decoder: DBDecoder = DefaultDBDecoder.FACTORY.create
def convert(data: Array[Byte]): DBObject =
// NOTE: we do not support Ref in input, that's why "null" for DBCollection
decoder.decode(data, null)
def convert(is: InputStream): DBObject =
// NOTE: we do not support Ref in input, that's why "null" for DBCollection
decoder.decode(is, null)
唯一值得注意的是,DBEncoder
实例在解码期间(重新)使用一个内部状态,因此它不是线程安全的。如果一个接一个地解码对象就可以了,但如果不这样,最好在每个解码会话中创建一个实例。检查此链接
bson_decode-将bson对象反序列化为PHP数组
bson_encode-将PHP变量序列化为bson字符串,下面是我使用Rapidjson制作的C++11 JSON编码器和解码器,因为本机JSON编码器(
BSONObj::jsonString
)对long使用非标准编码:
此外,与本机JSON编码器不同的是,此编码器在解码顶级数组时没有问题。它不是“PHP或Java”