Я конвертирую файл json в строку, а затем строка преобразуется в файл proto3.
Вот файл json:
{ "a": false,
"b": 0
}
Вот как я конвертирую свой json-файл в строку:
String json =Files.lines(Paths.get(filePath)).collect(Collectors.joining());
Вот как я конвертирую свою строку в файл proto3:
JsonFormat.parser().ignoringUnknownFields().merge(json,messageBuilder);
MyProto proto = messageBuilder.build();
У меня есть поля boolean и int в моем json, значения некоторых из них должны быть значениями по умолчанию (false для boolean и 0 для int).
Когда я десериализую указанный выше файл в java-файл proto3, оба вышеуказанных поля игнорируются, и мой json становится пустым, хотя я явно установил значения (как вы можете видеть в приведенном выше json файле).
Я знаю, что proto3 игнорирует значения по умолчанию при десериализации / сериализации, однако есть ли способ не игнорировать поля, которые явно установлены, даже если они являются значениями по умолчанию?