私はbson4jacksonを使用していくつかの解決策を見つけることができました:
public static InputStream documentToInputStream(final Document document) {
BasicOutputBuffer outputBuffer = new BasicOutputBuffer();
BsonBinaryWriter writer = new BsonBinaryWriter(outputBuffer);
new DocumentCodec().encode(writer, document, EncoderContext.builder().isEncodingCollectibleDocument(true).build());
return new ByteArrayInputStream(outputBuffer.toByteArray());
}
public static JsonNode documentToJsonNode(final Document document) throws IOException {
ObjectMapper mapper = new ObjectMapper(new BsonFactory());
InputStream is = documentToInputStream(document);
return mapper.readTree(is);
}
これが最も効率的な方法かどうかはわかりませんが、BSOnを文字列に変換してその文字列を解析するよりも優れたソリューションであると思います。 mongoDBJIRAにオープンチケットがあります Document、DBObjectからの変換を追加するため およびBsonDocument toBson 逆もまた同様です。これにより、プロセス全体が大幅に簡素化されます。