json.go 773 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. //UnMarshalPBValue obj为指针对象
  21. func UnMarshalPBValue(v *structpb.Value, obj interface{}) error {
  22. j, err := v.MarshalJSON()
  23. err = json.Unmarshal(j, obj)
  24. return err
  25. }
  26. //UnMarshalPBStruct obj为指针对象
  27. func UnMarshalPBStruct(v *structpb.Struct, obj interface{}) error {
  28. j, err := v.MarshalJSON()
  29. err = json.Unmarshal(j, obj)
  30. return err
  31. }