2017-10-13 2 views
1

である私は、JSONにJavaオブジェクトをシリアル化オブジェクトを試してきたint32のフィールドを持っており、値がJSONで0がprotobuf3 int32型フィールド、JSONにオブジェクトHAVAをJavaオブジェクトをシリアル化し、値が0

です、int32フィールドが失われました。

オブジェクトをシリアライズするときの回避方法

... 
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特定の場所に問題が発生した場合は、具体的にどのようにcribeするか –

答えて

1

は、私が発見した

プロトファイルのjava

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

ようJSON.includingDefaultValueFieldsメソッドへの変換は、提出されたデフォルト値

を含めるべきであるときanswer.theデフォルト値は無視する必要があります

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

関連する問題