亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法使用 protobuf 生成空數組/golang 代碼片段

無法使用 protobuf 生成空數組/golang 代碼片段

Go
蝴蝶刀刀 2023-07-26 09:18:15
我們希望將一個具有一個屬性的對象/結構作為 golang 中的空列表/數組/切片返回給客戶端(瀏覽器)。從 go 代碼中,我們返回 len=0 和capacity=0 的空切片,但是通過 protobuf 這個鍵被刪除或設置為 nil 并被刪除。原始緩沖區代碼syntax = "proto3";package version1;message ToDo {? ? ?int64 id = 1 ;? ? ?string title = 2;}message ReadAllResponse{? ? ?repeated? ?ToDo? toDos = 1 ;}戈蘭代碼:list := make([]*version1.ToDo, 0) //[]*version1.ToDo{}output:= version1.ReadAllResponse{? ? ? ? ToDos: list,? ? ? ? Api:? ?"v1",? ? }我得到的實際輸出是, {api: "v1"}但預期應該是{api: "v1",todos:[]}請幫助/建議我們修復 protobuf 或 golang 語法。
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

當grpc-gateway使用 jsonpb 序列化器將 proto 結構序列化為 json時,您的數組字段會丟失。

幸運的是,網關公開了一種在設置網關時配置 jsonpb 序列化器的方法:

mux?:=?runtime.NewServeMux(runtime.WithMarshalerOption(runtime.MIMEWildcard,?&runtime.JSONPb{?EmitDefaults:true}))

該?&runtime.JSONPb{ EmitDefaults:true}選項應該執行您想要的操作。


查看完整回答
反對 回復 2023-07-26
  • 1 回答
  • 0 關注
  • 283 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號