BSON сериализатор / десериализатор - PullRequest
4 голосов
/ 21 сентября 2010

Существует ли библиотека сериализаторов / десериализаторов BSON для PHP или Java?

Ответы [ 6 ]

3 голосов
/ 11 января 2011

Другая возможность - BSON4Jackson расширение для Джексона , которое добавляет поддержку чтения / записи BSON.

1 голос
/ 28 января 2013

проверить эту ссылку http://php.net/manual/en/ref.mongo.php

bson_decode - десериализует объект BSON в массив PHP

bson_encode - сериализует переменную PHP в строку BSON

1 голос
/ 09 января 2012

Кодер / декодер BSON в Java довольно тривиален. Следующий фрагмент кода из моего приложения, так что это в 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 имеет внутреннее состояние, которое он (повторно) использует во время декодирования, поэтому он не является поточно-ориентированным. Все должно быть хорошо, если вы декодируете объекты один за другим, но в противном случае вам лучше создать экземпляр для каждого сеанса декодирования.

0 голосов
/ 13 июня 2014

А вот кодер и декодер JSON C ++ 11, которые я сделал с помощью Rapidjson, поскольку собственный кодер JSON (BSONObj::jsonString) использует нестандартную кодировку для длинных строк: https://gist.github.com/ArtemGr/2c44cb451dc6a0cb46af

Кроме того, в отличие от нативного кодера JSON, у него нет проблем с декодированием массивов верхнего уровня.

0 голосов
/ 09 ноября 2010

Не для Java, но вот для Obj-C: https://github.com/martinkou/bson-objc/

0 голосов
/ 21 сентября 2010

Вы можете проверить драйверы MongoDB для этих языков, так как MongoDB использует BSON. Посмотрите, что они используют, или украдите их реализацию.

...