今天碰到了protobuf解析json字符串到message的错误
CHECK failed: (index) < (current_size_)
在网上搜索无果后尝试把repeated修饰的字段放在最后,解决了问题
例如:
使用如下代码解析json串时会出现以上错误
使用的是 JsonStringToMessage()函数
message RepeatedTest{
double lat=1;
}
message Test{
int32 menber1=1;
repeated RepeatedTest retest=2;
int32 count=3;
}
json数据无问题,当改成以下情况后就可以正常解析:
message Test{
int32 menber1=1;
int32 count=2;
repeated RepeatedTest retest=3;
}
不知道具体原因,可能是protobuf的bug
仅记住:使用protobuf时如果用repeated关键词修饰字段,应将repeated字段放在最后