Java-Typen in org.bson.BSONObject
Frage
Ich lerne zur Zeit der BSON Java-Bibliothek für mongodb und I‘ m versucht, ein org.bson.BSONObject in XML umzuwandeln, um sie zu transformieren mit einem XSLT Sheet.
Welche Art von Java-Typ kann ich als Wert in einem BSONObject von einem MongoDB finden? Natürlich wird es sein:
- BSONObject (interne doc)
- java.lang.String
- ???
Was sind die anderen? BigDecimal und BigInteger? boolean, int, long, double? Timestamp .. etc ... ??
Danke,
Pierre
Lösung
Wir hatten auch danach zu suchen, sondern nach dieses mongodb-dev Post-Mapping wie dies geschehen ist:
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"
Dieser Artikel auf mongodb.org ist eine gute Ressource für sie auch .
Edit: ein Blick auf die Quelle zur Verfügung:. Org.bson.types * ist eine Reihe von Klassen für BSON Typen aufweisen. org.bson.BSONDecoder wird Dekodieren eines BSON Zeichenfolge und führt die Abbildung der oben aufgeführt ist.
Andere Tipps
Eine alternative Art und Weise auf BSON zu betreiben wäre zu verwenden Jackson JSON Prozessor ; obwohl standardmäßig arbeitet es auf JSON gibt es Erweiterungen es sowohl auf verwenden BSON und XML . Da Jackson tut Datenbindung können Sie BSON Daten in Java POJOs (mit bson4jackson
) binden und als XML schreiben (mit jackson-xml-databind
).
Transformation wäre so einfach wie:
String xml = xmlMapper.writeValue(bsonMapper.readValue(bsonData, MyPojo.class));
Wenn Sie haben, oder erstellen können, MyPojo
, die alle Eigenschaften abbildet; oder wenn nicht durch Map.class
als Zwischen Typ zu binden, um anzugeben.