package utils import ( "errors" "github.com/tidwall/gjson" ) var ( ErrGjsonNotFound = errors.New("specified path does not exist") ErrGjsonWrongType = errors.New("wrong type") ) func GjsonGet(json []byte, path string) (gjson.Result, error) { result := gjson.GetBytes(json, path) if !result.Exists() { return result, ErrGjsonNotFound } return result, nil } func GjsonParseStringMap(jsonObject string) (map[string]string, error) { result := gjson.Parse(jsonObject) if !result.IsObject() { return nil, ErrGjsonWrongType } ret := make(map[string]string) result.ForEach(func(key, value gjson.Result) bool { ret[key.String()] = value.String() return true }) return ret, nil }