我目前正在学习mongodb 的 BSON java 库,我正在尝试将org.bson.BSONObject转换为 XML,以便使用XSLT样式表对其进行转换。
我可以在 Mongodb 的 BSONObject 中找到什么样的 java 类型作为值?当然会有:
- BSONObject(内部文档)
- java.lang.String
- ???
其他人是什么?BigDecimal 和 BigInteger ?布尔,整数,长,双?时间戳……等等……??
谢谢,
皮埃尔
我目前正在学习mongodb 的 BSON java 库,我正在尝试将org.bson.BSONObject转换为 XML,以便使用XSLT样式表对其进行转换。
我可以在 Mongodb 的 BSONObject 中找到什么样的 java 类型作为值?当然会有:
其他人是什么?BigDecimal 和 BigInteger ?布尔,整数,长,双?时间戳……等等……??
谢谢,
皮埃尔
也必须搜索它,但根据这个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 上的这篇文章也是一个很好的资源。
编辑:查看了源代码:org.bson.types.* 有许多 BSON 类型的类。org.bson.BSONDecoder 正在解码 BSON 字符串并执行上面列出的映射。
在 BSON 上运行的另一种方法是使用Jackson JSON 处理器;尽管默认情况下它在 JSON 上运行,但在BSON和XML上都有使用它的扩展。由于 Jackson 进行数据绑定,您可以将 BSON 数据绑定到 Java POJO(带bson4jackson
)并写成 XML(带jackson-xml-databind
)。转换很简单:
String xml = xmlMapper.writeValue(bsonMapper.readValue(bsonData, MyPojo.class));
如果您拥有或可以创建MyPojo
映射所有属性的地图;或者如果不指定Map.class
为要绑定的中间类型。