json.go 1012 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package common
  2. import (
  3. "encoding/json"
  4. "google.golang.org/protobuf/types/known/structpb"
  5. )
  6. func MarshalJSON(v interface{}) []byte {
  7. j, _ := json.Marshal(v)
  8. return j
  9. }
  10. func NewStructValuePB(v interface{}) *structpb.Value {
  11. s := new(structpb.Value)
  12. s.UnmarshalJSON(MarshalJSON(v))
  13. return s
  14. }
  15. func NewStructValuePBByBytes(v []byte) *structpb.Value {
  16. s := new(structpb.Value)
  17. s.UnmarshalJSON(v)
  18. return s
  19. }
  20. func NewStructPB(v interface{}) *structpb.Struct {
  21. s := new(structpb.Struct)
  22. s.UnmarshalJSON(MarshalJSON(v))
  23. return s
  24. }
  25. func NewStructPBByBytes(v []byte) *structpb.Struct {
  26. s := new(structpb.Struct)
  27. s.UnmarshalJSON(v)
  28. return s
  29. }
  30. // UnMarshalPBValue obj为指针对象
  31. func UnMarshalPBValue(v *structpb.Value, obj interface{}) error {
  32. j, err := v.MarshalJSON()
  33. err = json.Unmarshal(j, obj)
  34. return err
  35. }
  36. // UnMarshalPBStruct obj为指针对象
  37. func UnMarshalPBStruct(v *structpb.Struct, obj interface{}) error {
  38. j, err := v.MarshalJSON()
  39. err = json.Unmarshal(j, obj)
  40. return err
  41. }