string_list.go 446 B

123456789101112131415161718192021
  1. package json
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "strings"
  6. )
  7. func UnmarshalStringList(data []byte) ([]string, error) {
  8. var strarray []string
  9. if err := json.Unmarshal(data, &strarray); err == nil {
  10. return strarray, nil
  11. }
  12. var rawstr string
  13. if err := json.Unmarshal(data, &rawstr); err == nil {
  14. strlist := strings.Split(rawstr, ",")
  15. return strlist, nil
  16. }
  17. return nil, errors.New("Unknown format of a string list: " + string(data))
  18. }