как отобразить значение или поле по умолчанию в протоколе Buffer 3, работающем на JAVA - PullRequest
0 голосов
/ 24 октября 2018

В настоящее время я пытаюсь отобразить или записать пустое значение или значение по умолчанию для кадра protobuff.В моем случае буфер протокола используется по каналу RS232, и мне нужно отобразить значение по умолчанию, которые не отправляются в полезной нагрузке (я знаю, что они неявные) Сначала я подумал об использовании метода .hasField (поле), но это не такадаптировано из-за длины файла .proto.Я попытался использовать формат Json с принтером, указатель вернул поле «».

FromSender Message = FromSender.parseFrom(receivedFrame.getPayload());
Printer p = JsonFormat.printer().includingDefaultValueFields();
String result = p.print(Message);

1 Ответ

0 голосов
/ 25 октября 2018

Мне наконец-то удалось использовать этот метод.Я просто поместил принтер в метод, используя строитель

public String getDefaultValue() {
		StringBuilder builder = new StringBuilder();
		try {
			if(FrameMessage != null) {
				Printer p = JsonFormat.printer().includingDefaultValueFields();
				builder.append(p.print(FrameMessage));
			}
		} catch (InvalidProtocolBufferException e) {
			LOGGER.error("Error while parsing message", e);
				e.printStackTrace();
			}
			return builder.toString();
		}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...