marshal.go 755 B

1234567891011121314151617181920212223242526272829
  1. package goStrongswanVici
  2. import (
  3. "encoding/json"
  4. )
  5. //concrete data type to general data type
  6. // concrete data type like *Version
  7. // general data type include map[string]interface{} []string string
  8. // TODO make it faster
  9. func ConvertToGeneral(concrete interface{}, general interface{}) (err error) {
  10. b, err := json.Marshal(concrete)
  11. if err != nil {
  12. return
  13. }
  14. return json.Unmarshal(b, general)
  15. }
  16. // general data type to concrete data type
  17. // concrete data type like *Version
  18. // general data type include map[string]interface{} []string string
  19. // TODO make it faster
  20. func ConvertFromGeneral(general interface{}, concrete interface{}) (err error) {
  21. b, err := json.Marshal(general)
  22. if err != nil {
  23. return
  24. }
  25. return json.Unmarshal(b, concrete)
  26. }