protobuf json marshal
时间: 2023-11-08 21:03:26 浏览: 178
protobuf json marshal 是将 protobuf 格式的数据转换为 JSON 格式的数据。在 Go 语言中,可以使用官方提供的 protobuf/json 包来完成这个转换过程。
具体实现方法是先将 protobuf 格式的数据解码为 Go 对象,再使用 json 包将 Go 对象编码为 JSON 格式的数据。
示例代码如下:
```
import (
"encoding/json"
"github.com/golang/protobuf/jsonpb"
"github.com/golang/protobuf/proto"
)
// 将 protobuf 格式的数据转换为 JSON 格式的数据
func ProtoToJson(pb proto.Message) (string, error) {
marshaller := jsonpb.Marshaler{}
jsonStr, err := marshaller.MarshalToString(pb)
if err != nil {
return "", err
}
return jsonStr, nil
}
// 将 JSON 格式的数据转换为 protobuf 格式的数据
func JsonToProto(jsonStr string, pb proto.Message) error {
err := jsonpb.UnmarshalString(jsonStr, pb)
if err != nil {
return err
}
return nil
}
```
阅读全文