3

大家好

当我尝试在消息中生成具有不同字段的 protobuf 时,它会以某种方式在文档中生成字符串字段而不是 int 或 float

我将附上原型文件代码和结构代码。

 service Payment {
     rpc CreateResult(CreateResultRequest) returns(CreateResultResponse){
         option (google.api.http) = {
         post: "/v1/payment/result"
         body: "*"
     };
 }

 message CreateResultRequest {
     string ik_co_id = 1;
     string ik_pw_via = 2;
     string ik_pm_no = 3 ;
     int64 ik_am = 4;
     string ik_cur = 5;
     string ik_desc = 6;
     string ik_sign = 7;
     string ik_co_prs_id = 8;
     string ik_inv_id = 9;
     string ik_inv_st = 10;
     string ik_inv_crt = 11;
     string ik_inv_prc = 12;
     string ik_trn_id = 13;
     int64 ik_co_rfn = 14;
     float ik_ps_price = 15;
 }

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

2

int64 文件被设计成字符串映射(当然应该是一个数字),你可以在 github 上的这个评论中找到更好的细节。

所以我建议你使用不同的类型,

Proto3 to JSON Mapping:
int64, uint64 ---> String
float, double ----> number.
于 2021-05-12T08:08:24.933 回答