mirror of https://github.com/golang/go.git
encoding/json: marshal the RawMessage value type the same as its pointer type
Fixes #14493 Updates #6458 (changes its behavior) Change-Id: I851a8113fd312dae3384e989ec2b70949dc22838 Reviewed-on: https://go-review.googlesource.com/21811 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Quentin Smith <quentin@golang.org>
This commit is contained in:
parent
587b80322c
commit
1625da2410
|
|
@ -1,3 +1,4 @@
|
|||
pkg encoding/json, method (*RawMessage) MarshalJSON() ([]uint8, error)
|
||||
pkg net, func ListenUnixgram(string, *UnixAddr) (*UDPConn, error)
|
||||
pkg syscall (darwin-386), func Fchflags(string, int) error
|
||||
pkg syscall (darwin-386-cgo), func Fchflags(string, int) error
|
||||
|
|
|
|||
|
|
@ -440,7 +440,9 @@ func TestIssue6458(t *testing.T) {
|
|||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if want := `{"M":"ImZvbyI="}`; string(b) != want {
|
||||
// Until Go 1.8, this generated `{"M":"ImZvbyI="}`.
|
||||
// See https://github.com/golang/go/issues/14493#issuecomment-255857318
|
||||
if want := `{"M":"foo"}`; string(b) != want {
|
||||
t.Errorf("Marshal(x) = %#q; want %#q", b, want)
|
||||
}
|
||||
}
|
||||
|
|
@ -717,3 +719,14 @@ func TestMarshalFloat(t *testing.T) {
|
|||
test(0, 32)
|
||||
test(math.Copysign(0, -1), 32)
|
||||
}
|
||||
|
||||
func TestMarshalRawMessageValue(t *testing.T) {
|
||||
const val = "\"some value\""
|
||||
b, err := Marshal(RawMessage(val))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if string(b) != val {
|
||||
t.Errorf("got %q; want %q", b, val)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -246,9 +246,9 @@ func (enc *Encoder) SetEscapeHTML(on bool) {
|
|||
// be used to delay JSON decoding or precompute a JSON encoding.
|
||||
type RawMessage []byte
|
||||
|
||||
// MarshalJSON returns *m as the JSON encoding of m.
|
||||
func (m *RawMessage) MarshalJSON() ([]byte, error) {
|
||||
return *m, nil
|
||||
// MarshalJSON returns m as the JSON encoding of m.
|
||||
func (m RawMessage) MarshalJSON() ([]byte, error) {
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// UnmarshalJSON sets *m to a copy of data.
|
||||
|
|
|
|||
Loading…
Reference in New Issue