欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

go Protobuf轉Json

錢艷冰1年前8瀏覽0評論

Protobuf是Google的一種序列化數據結構的方法,它可以更高效地傳輸和存儲數據。然而,在將數據用于網絡傳輸或前端展示時,我們可能需要將Protobuf轉換為JSON格式。

幸運的是,Google提供了一個官方庫,可以幫助我們在Go語言中將Protobuf轉換為JSON。該庫名為"protobuf/jsonpb",我們可以使用它來實現Protobuf到JSON的轉換。

package main
import (
	"encoding/json"
	"fmt"
"github.com/golang/protobuf/jsonpb"
	"github.com/golang/protobuf/proto"
)
type Person struct {
	Name string
	Age  int32
}
func main() {
	person := &Person{Name: "John", Age: 30}
	jsonData, err := ProtoToJson(person)
	if err != nil {
fmt.Println(err)
return
	}
	fmt.Println(string(jsonData))
}
func ProtoToJson(person *Person) ([]byte, error) {
	marshaler := &jsonpb.Marshaler{OrigName: true}
	personProto := &pb.Person{
Name: person.Name,
Age:  person.Age,
	}
	return marshaler.MarshalToString(personProto)
}

在上面的代碼示例中,我們首先定義了一個Person結構體,其中包含名字和年齡字段。然后,我們定義了ProtoToJson函數,它接受Person結構體作為輸入,并返回一個字節數組和一個錯誤。在該函數中,我們使用protobuf/jsonpb庫將Person結構體轉換為Protobuf類型的Person,然后使用jsonpb.Marshaler將其轉換為JSON格式的字符串。

最后,我們在main函數中創建了一個Person結構體實例,將其傳遞給ProtoToJson函數,并將返回的JSON數據打印到控制臺。

總之,使用protobuf/jsonpb庫可以幫助我們在Go語言中將Protobuf轉換為JSON格式,從而更好地滿足不同的數據傳輸需求。