2017-10-13 41 views
1

我已经尝试序列化Java对象JSON,对象具有INT32字段,值是0protobuf3序列化的Java对象到JSON,对象HAVA一个INT32字段,值是0

在JSON

,int32字段丢失。

如何在序列化对象时避免它。

原型文件像

message Pm { 
int32 point = 1; 
string url = 2; 
} 

的Java

... 
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

请发表[mcve]和des特别是如何/在哪里发生问题。 –

回答

1

我已经找到了answer.the默认值应该是忽略时转换为JSON.includingDefaultValueFields方法应包括提交的默认和价值

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