resolve #368 add option to UseNumber() in gin.Context.BindJSON()

This commit is contained in:
whirosan 2017-07-10 01:08:26 +09:00
parent df3b79e805
commit f0c42ad917
2 changed files with 11 additions and 1 deletions

View File

@ -10,7 +10,10 @@ import (
"github.com/json-iterator/go" "github.com/json-iterator/go"
) )
var json = jsoniter.ConfigCompatibleWithStandardLibrary var (
json = jsoniter.ConfigCompatibleWithStandardLibrary
EnableDecoderUseNumber = false
)
type jsonBinding struct{} type jsonBinding struct{}
@ -20,6 +23,9 @@ func (jsonBinding) Name() string {
func (jsonBinding) Bind(req *http.Request, obj interface{}) error { func (jsonBinding) Bind(req *http.Request, obj interface{}) error {
decoder := json.NewDecoder(req.Body) decoder := json.NewDecoder(req.Body)
if EnableDecoderUseNumber {
decoder.UseNumber()
}
if err := decoder.Decode(obj); err != nil { if err := decoder.Decode(obj); err != nil {
return err return err
} }

View File

@ -64,6 +64,10 @@ func DisableBindValidation() {
binding.Validator = nil binding.Validator = nil
} }
func EnableJsonDecoderUseNumber() {
binding.EnableDecoderUseNumber = true
}
func Mode() string { func Mode() string {
return modeName return modeName
} }