Допустим, у меня есть такая схема fbs:
table SomeItem
{
module_version:string;
message_id:[uint8];
some_other_id:[uint8];
event_time_us:uint64;
message:string;
}
Это пример, реальная структура намного, намного больше. Поэтому мне нужно получить эти данные из другого модуля в формате fbs, преобразовать их в JSON, а затем отправить клиенту в виде HTTP-ответа.
Проблема касается этих бинарных полей данных. Насколько я знаю, вы просто не можете отправить JSON с необработанными двоичными данными, вы должны его закодировать (например, в Base64
). И я бы с удовольствием это сделал, но только если бы структура данных была достаточной сложности. Он настолько большой, что не составляет труда использовать встроенный конвертер Flatbuffers Obj-To-JSON, но библиотека flatbuffers не поддерживает кодирование/декодирование Base64 для полей двоичных данных.
Так что у меня остается один вариант:
Вручную создайте JSON-представление объекта flatbuffers и обработайте все данные, как мне заблагорассудится (преобразуйте поля двоичных данных в формат base64 и поместите их в JSON), но это займет очень много времени.
Есть ли способ просто использовать встроенный конвертер flatbuffers и каким-то образом передать результат JSON HTTP-клиенту?