Protobuf:转成json不显示零值字段问题

/ C++ / 没有评论 / 2683浏览

protobuf转成json不显示零值字段问题解决

前提:所用语言:C++,版本:最新

问题描述:在使用枚举值时,默认值是从0开始的,导致使用MessageToJsonString转成json字符串时,零值的字段不显示。

enum num
{
	a = 0;
	b = 1;
	c = 2;
}

解决方式:

查看源代码在json_util.h文件中,有转成json字符串选项JsonOptions。修正我们的代码如

std::string out;
google::protobuf::util::JsonOptions options;
options.always_print_primitive_fields = true;   //显示默认值
google::protobuf::util::MessageToJsonString(xxx, &out, options);