// decodeFunc - Decodes JSON strings, readers and byte arrays. func decodeFunc(val action.Format) interface{} { // Value can be a Reader if reader, ok := val.Reader(); ok { defer reader.Close() var res interface{} if err := json.NewDecoder(reader).Decode(&res); err == nil { return res } return reader } return val.Value }