типы Java в org.bson.BSONObject - PullRequest
       5

типы Java в org.bson.BSONObject

2 голосов
/ 16 сентября 2010

В настоящее время я изучаю Java-библиотеку BSON для mongodb и пытаюсь преобразовать org.bson.BSONObject в XML, чтобы преобразовать его с XSLT таблица стилей.

Какие типы java я могу найти в качестве значений в BSONObject от Mongodb? Конечно будет:

  • BSONObject (внутренний документ)
  • java.lang.String
  • ???

Какие другие? BigDecimal и BigInteger? логическое, int, long, double? Временная метка .. и т.д ... ??

спасибо,

Pierre

Ответы [ 2 ]

6 голосов
/ 16 сентября 2010

Пришлось его тоже искать, но согласно это отображение сообщений mongodb-dev выполняется так:

 NULL            null
 UNDEFINED       null
 BOOLEAN         Boolean
 NUMBER          Double
 NUMBER_INT      Integer
 NUMBER_LONG     Long
 SYMBOL          String
 STRING          String
 OID             mongodb ObjectID
 REF             DBPointer
 DATE            Date
 REGEX           Pattern
 BINARY          DBBinary
 CODE            (exception)
 ARRAY           DBList
 OBJECT          DBObject or DBRef
 TIMESTAMP       DBTimestamp
 MINKEY          String: "MinKey"
 MAXKEY          String: "MaxKey" 

Эта статья на mongodb.Орг также хороший ресурс для этого.

Редактировать: Посмотрите на источник: org.bson.types. * Имеет несколько классов для типов BSON.org.bson.BSONDecoder декодирует строку BSON и выполняет сопоставление, указанное выше.

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

Одним из альтернативных способов работы с BSON будет использование JSON-процессора Джексона ; хотя по умолчанию он работает на JSON, существуют расширения для его использования как на BSON , так и на XML . Поскольку Джексон выполняет привязку данных, вы можете связать данные BSON в Java POJO (с bson4jackson) и записать в формате XML (с jackson-xml-databind). Преобразование будет так же просто, как:

String xml = xmlMapper.writeValue(bsonMapper.readValue(bsonData, MyPojo.class));

если у вас есть или вы можете создать MyPojo, который отображает все свойства; или, если нет, указав Map.class в качестве промежуточного типа для привязки.

...