kbe*_*nda 5 java json protocol-buffers
我有一个非常简单的原型:
message ChargeCardResponse
{
bool success = 1;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试将其解析为 String 时,我从 JsonFormat.printer().print() 得到一个非常奇怪的输出,这取决于成功值。
ChargeCardResponse.Builder builder = ChargeCardResponse.newBuilder();
System.out.println(JsonFormat.printer().print(builder.setSuccess(true).build()));
Run Code Online (Sandbox Code Playgroud)
输出:{“成功”:真}
ChargeCardResponse.Builder builder2 = ChargeCardResponse.newBuilder();
System.out.println(JsonFormat.printer().print(builder2.setSuccess(false).build()));
Run Code Online (Sandbox Code Playgroud)
输出: {}
因此,如果我为具有成功属性的打印机提供 false 值,则无法生成 JSON 格式。我究竟做错了什么?有谁能证实一下吗?
小智 6
问题是将成功设置为“false”相当于保留默认的“false”值不变。
JsonPrinter 会忽略默认的 proto 值,除非它关闭了该选项:
这应该有效,我认为:
ChargeCardResponse.Builder builder2 = ChargeCardResponse.newBuilder();
System.out.println(JsonFormat.printer().includingDefaultValueFields().print(builder2.setSuccess(false).build()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3971 次 |
| 最近记录: |