簡體   English   中英

protobuf3 將一個 java 對象序列化為 json ,該對象有一個 int32 字段,值為 0

[英]protobuf3 serialize a java object to json , the object hava a int32 field and the value is 0

我嘗試將 java 對象序列化為 JSON,該對象有一個 int32 字段,值為 0

在 JSON 中,int32 字段丟失了。

序列化對象時如何避免它。

proto文件之類的

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}

我找到了答案。轉換為 JSON 時應忽略默認值。包括默認值字段方法應包括默認文件和值

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM