| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package common
- import (
- "encoding/json"
- "google.golang.org/protobuf/types/known/structpb"
- )
- func MarshalJSON(v interface{}) []byte {
- j, _ := json.Marshal(v)
- return j
- }
- func NewStructValuePB(v interface{}) *structpb.Value {
- s := new(structpb.Value)
- s.UnmarshalJSON(MarshalJSON(v))
- return s
- }
- func NewStructValuePBByBytes(v []byte) *structpb.Value {
- s := new(structpb.Value)
- s.UnmarshalJSON(v)
- return s
- }
- func NewStructPB(v interface{}) *structpb.Struct {
- s := new(structpb.Struct)
- s.UnmarshalJSON(MarshalJSON(v))
- return s
- }
- func NewStructPBByBytes(v []byte) *structpb.Struct {
- s := new(structpb.Struct)
- s.UnmarshalJSON(v)
- return s
- }
- // UnMarshalPBValue obj为指针对象
- func UnMarshalPBValue(v *structpb.Value, obj interface{}) error {
- j, err := v.MarshalJSON()
- err = json.Unmarshal(j, obj)
- return err
- }
- // UnMarshalPBStruct obj为指针对象
- func UnMarshalPBStruct(v *structpb.Struct, obj interface{}) error {
- j, err := v.MarshalJSON()
- err = json.Unmarshal(j, obj)
- return err
- }
|