Merge branch 'master' into json

This commit is contained in:
Javier Provecho Fernandez 2017-07-10 10:36:29 +02:00 committed by GitHub
commit 614ec1f231
3 changed files with 18 additions and 1 deletions

View File

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

View File

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

View File

@ -8,6 +8,7 @@ import (
"os"
"testing"
"github.com/gin-gonic/gin/binding"
"github.com/stretchr/testify/assert"
)
@ -34,3 +35,9 @@ func TestSetMode(t *testing.T) {
assert.Panics(t, func() { SetMode("unknown") })
}
func TestEnableJsonDecoderUseNumber(t *testing.T) {
assert.False(t, binding.EnableDecoderUseNumber)
EnableJsonDecoderUseNumber()
assert.True(t, binding.EnableDecoderUseNumber)
}