示例文件main.proto

syntax = "proto3";
package main;

message Test {
    string comment = 1;
}

message Example {
    string name = 1;
    int32 age = 2;
    repeated Test t = 3;

    message Label {
        string source = 1;
    }
    repeated Label labels = 4;
}

程序代码:

package main
import (
    "fmt"
    "io/ioutil"
    "os"
    "github.com/golang/protobuf/proto"
)

func main() {
    // Open and read the contents of the file
    fp, _ := os.Open("main.txt")
    defer fp.Close()
    data, _ := ioutil.ReadAll(fp)

    // convert the file from type []byte to a string
    text := string(data)

    // initialize the example struct
    ex := Example{}

    // Unmarshal the text into the struct
    _ = proto.UnmarshalText(text, &ex)
    fmt.Println(ex)

    // Create an output file
    fp2, _ := os.Create("gen_main.txt")
    defer fp2.Close()

    // Write the same data back to another file
    _ = proto.MarshalText(fp2, &ex)
}

运行

go run .

{Larry 99 [comment:”hello” comment:”world” ] [source:”foo” source:”bar” ] {} [] 0}

本文链接地址:https://const.net.cn/366.html

标签: protobuf

添加新评论