diff options
| author | HÃ¥vard Haugen <havard.haugen@gmail.com> | 2016-02-03 23:41:55 +0100 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2016-04-06 20:19:15 +0000 |
| commit | cdc0ebbebe64d8fa601914945112db306c85c426 (patch) | |
| tree | b9b982d7b713545ad16eee37376384fa44732ce7 /src/encoding/json/encode.go | |
| parent | 2cefd12a1bf7ee1d1aad03e17c4680d4b611d6da (diff) | |
| download | go-cdc0ebbebe64d8fa601914945112db306c85c426.tar.xz | |
encoding/json: respect json.Marshaler when encoding byte kind slices
Fixes #13783.
Change-Id: I0122c1f0cf4075acabf5f58241bded1835699dc1
Reviewed-on: https://go-review.googlesource.com/19725
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/encoding/json/encode.go')
| -rw-r--r-- | src/encoding/json/encode.go | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/encoding/json/encode.go b/src/encoding/json/encode.go index bcae6838cc..927f47b179 100644 --- a/src/encoding/json/encode.go +++ b/src/encoding/json/encode.go @@ -679,7 +679,9 @@ func (se *sliceEncoder) encode(e *encodeState, v reflect.Value, _ bool) { func newSliceEncoder(t reflect.Type) encoderFunc { // Byte slices get special treatment; arrays don't. - if t.Elem().Kind() == reflect.Uint8 { + if t.Elem().Kind() == reflect.Uint8 && + !t.Elem().Implements(marshalerType) && + !t.Elem().Implements(textMarshalerType) { return encodeByteSlice } enc := &sliceEncoder{newArrayEncoder(t)} |
