Clean extra tag contents when determining field name
diff --git a/mapstructure.go b/mapstructure.go index 253859f..e7c4155 100644 --- a/mapstructure.go +++ b/mapstructure.go
@@ -382,6 +382,7 @@ fieldName := fieldType.Name tagValue := fieldType.Tag.Get(d.config.TagName) + tagValue = strings.SplitN(tagValue, ",", 2)[0] if tagValue != "" { fieldName = tagValue }
diff --git a/mapstructure_test.go b/mapstructure_test.go index 5535f8e..5f359c2 100644 --- a/mapstructure_test.go +++ b/mapstructure_test.go
@@ -49,6 +49,7 @@ } type Tagged struct { + Extra string `mapstructure:"bar,what,what"` Value string `mapstructure:"foo"` } @@ -525,6 +526,7 @@ input := map[string]interface{}{ "foo": "bar", + "bar": "value", } var result Tagged @@ -536,6 +538,10 @@ if result.Value != "bar" { t.Errorf("value should be 'bar', got: %#v", result.Value) } + + if result.Extra != "value" { + t.Errorf("extra should be 'value', got: %#v", result.Extra) + } } func testSliceInput(t *testing.T, input map[string]interface{}, expected *Slice) {