proto 定义interface

syntax = "proto3";

package home.protobuf;

option go_package = "github.com/go-home-admin/home/protobuf";

message Any {
    bytes b = 1;
}

使用protoc生成代码后扩展功能

package protobuf

import "encoding/json"

func NewAny(v interface{}) *Any {
    s, err := json.Marshal(v)
    if err != nil {
        return &Any{
            B: []byte(""),
        }
    }
    return &Any{
        B: s,
    }
}

func (x *Any) MarshalJSON() ([]byte, error) {
    return x.B, nil
}

func (x *Any) UnmarshalJSON(v []byte) error {
    x.B = v
    return nil
}
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!