diff --git a/binding/json.go b/binding/json.go index 310922c1..da92cb9d 100644 --- a/binding/json.go +++ b/binding/json.go @@ -17,6 +17,10 @@ import ( // interface{} as a Number instead of as a float64. var EnableDecoderUseNumber = false +// EnableDecoderKnownFieldsOnly is used to toggle DisallowUnknownFields +// which is disabled by default +var EnableDecoderKnownFieldsOnly = false + type jsonBinding struct{} func (jsonBinding) Name() string { @@ -36,6 +40,9 @@ func decodeJSON(r io.Reader, obj interface{}) error { if EnableDecoderUseNumber { decoder.UseNumber() } + if EnableDecoderKnownFieldsOnly { + decoder.DisallowUnknownFields() + } if err := decoder.Decode(obj); err != nil { return err }