有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    我找到了答案。转换为JSON时应忽略默认值。includingDefaultValueFields方法应包含默认字段和值

    System.out.println(JsonFormat.printer().includingDefaultValueFields().print(pm));