Я пытаюсь закодировать организацию Json JSONObject в байт [] формата BSON. Однако я заметил, что в результирующем байте [] есть завершающие нули. Хотя эти нули не представляют проблемы при повторной десериализации байта [] в JSON, они, тем не менее, занимают много места. Мой код следующий:
#deserializing incoming message
RawBsonDocument bson = new RawBsonDocument((byte[])incomingBson);
json = new JSONObject(bson.toJson());
#serializing response to **bson format**
RawBsonDocument bsonDoc = RawBsonDocument.parse(json.toString());
responseBson = bsonDoc.getByteBuffer().array();
Простое обрезание байта [] от всех конечных нулей не вариант, так как byte [] вполне может иметь действительные нули в конце, которые не добавлены сериализацию.
Edit 1
Я решил проблему с помощью следующего кода:
RawBsonDocument bsonDoc = RawBsonDocument.parse(json.toString());
responseBson = Arrays.copyOfRange(bsonDoc.getByteBuffer().array(), 0, bsonDoc.getByteBuffer().limit());
Я считаю, что это должно быть больше элегантный ответ