如何在 GRPC 的 JSON 中表示 int64 值?

问题描述 投票:0回答:1

我对 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 中表示这个值的正确方法是什么? 文档都说我的表述应该是正确的

protocol-buffers grpc protobuf-c
1个回答
0
投票

@DazWilkin 说得对 - 我需要

uint64
而不是
int64
;现在大家都很开心。

© www.soinside.com 2019 - 2024. All rights reserved.