Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BSON序列化程序/反序列化程序_Java_Php_Bson - Fatal编程技术网

Java BSON序列化程序/反序列化程序

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

是否有用于PHP或Java的BSON序列化程序/反序列化程序库?

您可以检查这些语言的MongoDB驱动程序,因为MongoDB使用BSON。查看他们使用了什么,或者窃取了他们的实现。

不是针对Java,而是针对Obj-C:

另一种可能性是扩展,它增加了对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”