我对 GRPC 在 JSON 中表示 int64 值有疑问。
我正在使用 protobuf 定义:
syntax = "proto3";
package foo;
message Bar {
string spec = 1;
int64 compatibility_key = 3;
}
我正在使用这样的 JSON 表示形式:
{
"Bar": {
"spec": "somepath/somefile.txt",
"compatibility_key": "17457183487633360448"
}
}
但是当我尝试使用
google::protobuf::util::JsonStringToMessage(json_string, msg);
解析此 JSON 时
我明白了
Expected equality of these values:
google::protobuf::util::OkStatus()
Which is: OK
pb_status
Which is: INVALID_ARGUMENT:(Bar.compatibility_key): invalid value "17457183487633360448" for type TYPE_INT64
那么 - 在 JSON 中表示这个值的正确方法是什么? 文档都说我的表述应该是正确的
@DazWilkin 说得对 - 我需要
uint64
而不是 int64
;现在大家都很开心。