BSON串行器/解串器

时间:2010-09-20 23:44:30

标签: java php bson

是否有用于PHP或Java的BSON串行器/解串器库?

6 个答案:

答案 0 :(得分:3)

BSON4Jackson的另一种可能性是Jackson扩展,增加了对BSON读/写的支持。

答案 1 :(得分:1)

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实例在解码过程中具有内部状态(重新),因此它不是线程安全的。如果逐个解码对象应该没问题,否则你最好每个解码会话创建一个实例。

答案 2 :(得分:1)

检查此链接 http://php.net/manual/en/ref.mongo.php

bson_decode - 将BSON对象反序列化为PHP数组

bson_encode - 将PHP变量序列化为BSON字符串

答案 3 :(得分:0)

您可以检查MongoDB驱动程序中的那些语言,因为MongoDB使用BSON。了解他们使用的是什么,或者窃取他们的实施。

答案 4 :(得分:0)

不是为了Java,而是Obj-C的一个: https://github.com/martinkou/bson-objc/

答案 5 :(得分:0)

这是我使用Rapidjson制作的C ++ 11 JSON编码器和解码器,因为原生JSON编码器(BSONObj::jsonString)对long使用非标准编码:https://gist.github.com/ArtemGr/2c44cb451dc6a0cb46af

此外,与原生JSON编码器不同,此编码器在解码顶级数组时没有问题。