private void jacksonThenJackson(String json) throws IOException {
    ObjectNode expected = maybeWrap(mapper.readTree(json));

    BasicOutputBuffer buffer = new BasicOutputBuffer();
    BsonWriter writer = new BsonBinaryWriter(buffer);

    BsonGenerator generator = new BsonGenerator(0, writer);
    // write with Jackson
    mapper.writeValue(generator, expected);

    BsonBinaryReader reader = new BsonBinaryReader(ByteBuffer.wrap(buffer.toByteArray()));
    IOContext ioContext = new IOContext(new BufferRecycler(), ContentReference.unknown(), false);
    BsonParser parser = new BsonParser(ioContext, 0, reader);

    // read with Jackson
    JsonNode actual = mapper.readValue(parser, JsonNode.class);
    check(actual).is(expected);
  }
Read and Write in Jackson API but using BSON reader/writer adapters
criteria/mongo/test/org/immutables/criteria/mongo/bson4jackson/BsonParserTest.java