package main import ( "log" protomsg "./protomsg" "github.com/golang/protobuf/proto" ) // 创建一条 sdkmsg 数据流信息 func buildSdkMsg() *protomsg.SdkMessage { var sdkmsg protomsg.SdkMessage sdk1 := "812b674b-2375-4589-919a-5c1c3278a972" sdk2 := "812b674b-2375-4589-919a-5c1c3278a971" task1 := &protomsg.TaskLabel{Taskid: "5b0902ae-b1bd-43c0-816d-0a87f1f859d1", Sdkids: []string{sdk1, sdk2}, Index: 0} sdkmsg.Cid = "cid0" sdkmsg.Data = []byte("this is test image") sdkmsg.Tasklab = task1 return &sdkmsg } func main() { oldsdkmsg := buildSdkMsg() //test sdkmsg //encoding data, err := proto.Marshal(oldsdkmsg) log.Println(data) newsdkmsg := &protomsg.SdkMessage{} err = proto.Unmarshal(data, newsdkmsg) if err != nil { log.Fatal("unmarshaling error: ", err) } log.Println(newsdkmsg) for _, sdkid := range newsdkmsg.Tasklab.Sdkids { log.Println(sdkid) } }