utils.go 495 B

12345678910111213141516171819202122232425262728
  1. package client
  2. import (
  3. "encoding/json"
  4. "github.com/pkg/errors"
  5. "gopkg.in/yaml.v3"
  6. )
  7. func unmarshalYamlToJsonStruct(yamlBytes []byte, output any) error {
  8. yamlMap := make(map[string]any)
  9. err := yaml.Unmarshal(yamlBytes, &yamlMap)
  10. if err != nil {
  11. return errors.New(err.Error())
  12. }
  13. jsonBytes, err := json.Marshal(yamlMap)
  14. if err != nil {
  15. return errors.New(err.Error())
  16. }
  17. err = json.Unmarshal(jsonBytes, output)
  18. if err != nil {
  19. return errors.New(err.Error())
  20. }
  21. return nil
  22. }