serialization protobuf3将java对象序列化为json,对象有一个int32字段,值为0
我尝试将java对象序列化为JSON,该对象有一个int32字段,值为0
在JSON中,int32字段丢失
序列化对象时如何避免它
类原始文件
message Pm {
int32 point = 1;
string url = 2;
}
爪哇
...
pm.setPoint(0);
...
System.out.println(JsonFormat.printer().print(pm)); //result: {} expect :{"point": 0}
...
pm.setPoint(1);
...
System.out.println(JsonFormat.printer().print(pm)); //{"point": 1}
# 1 楼答案
我找到了答案。转换为JSON时应忽略默认值。includingDefaultValueFields方法应包含默认字段和值
System.out.println(JsonFormat.printer().includingDefaultValueFields().print(pm));