Jeg var i stand til at finde ud af en løsning ved hjælp af 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);
}
Jeg er ikke sikker på, om dette er den mest effektive måde, jeg antager, at det stadig er en bedre løsning end at konvertere BSOn til String og parse den streng. Der er en åben billet i mongoDB JIRA for at tilføje konvertering fra Document, DBObject og BsonDocument til tilBson og omvendt, hvilket ville forenkle hele processen meget.