我正在将 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();
我的 json 中有 boolean 和 int 字段,其中一些字段的值必须是默认值(布尔为 false,int 为 0)。
当我将上述文件反序列化为 proto3 java 文件时,上述两个字段都将被忽略,即使我已明确设置值(如您在上述 json 文件中所见),我的 json 也会变为空。
我知道 proto3 在反序列化/序列化时会忽略默认值,但是有没有办法不忽略显式设置的字段,即使它们是默认值?