一句話總結:帶有omitempty欄位的成員,如果該字段為nil(字串」「,空陣列等),則打包的json結果不會有這個字段。
我們把proto檔案自動生成go**時會出現omitempty欄位,如下
type reply struct
直接上**
package main
import (
"encoding/json"
"fmt"
)type person struct
func main()
data, err := json.marshal(p1)
if err != nil
// p1 沒有為addr賦值,這裡列印出來不會出現addr的字段
fmt.printf("%s\n", data)
p2 := person
data2, err := json.marshal(p2)
if err != nil
// p2 則會列印所有
fmt.printf("%s\n", data2)
}
執行結果
process finished with
exit code 0
Protobuf 中的型別檢查
在使用protobuffer時,如果定義乙個訊息如下 enum my enum enum type1 1,enum type2 2 message my msg required my enum test enum 1 那麼,在protoc生成的 中,在賦值時 set test enum const...
protobuf在網遊中的用法
訊息傳遞過程 client gated zoned cs訊息結構 cpp view plaincopy 01.message head 02.05.06.message body 07.10.11.message csmessage 12.傳送資料格式 16bits len csmessage。ga...
ProtoBuf的Socket中應用示例
寫了乙個socket通訊下的protobuf示例,三個檔案 syntax proto3 package demo message helloprotobuf 編譯命令 protoc i cpp out helloprotobuf.proto include include include inclu...