mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
encoding/json: handle misspelled JSON literals in ,string
Fixes #15146. Change-Id: I229611b9cc995a1391681c492c4d742195c787ea Reviewed-on: https://go-review.googlesource.com/30943 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
3c1e1c30fd
commit
0da30d5cbd
2 changed files with 27 additions and 1 deletions
|
|
@ -379,6 +379,10 @@ type unmarshalTest struct {
|
|||
golden bool
|
||||
}
|
||||
|
||||
type B struct {
|
||||
B bool `json:",string"`
|
||||
}
|
||||
|
||||
var unmarshalTests = []unmarshalTest{
|
||||
// basic types
|
||||
{in: `true`, ptr: new(bool), out: true},
|
||||
|
|
@ -778,6 +782,16 @@ var unmarshalTests = []unmarshalTest{
|
|||
Offset: 30,
|
||||
},
|
||||
},
|
||||
|
||||
// issue 15146.
|
||||
// invalid inputs in wrongStringTests below.
|
||||
{in: `{"B":"true"}`, ptr: new(B), out: B{true}, golden: true},
|
||||
{in: `{"B":"false"}`, ptr: new(B), out: B{false}, golden: true},
|
||||
{in: `{"B": "maybe"}`, ptr: new(B), err: errors.New(`json: invalid use of ,string struct tag, trying to unmarshal "maybe" into bool`)},
|
||||
{in: `{"B": "tru"}`, ptr: new(B), err: errors.New(`json: invalid use of ,string struct tag, trying to unmarshal "tru" into bool`)},
|
||||
{in: `{"B": "False"}`, ptr: new(B), err: errors.New(`json: invalid use of ,string struct tag, trying to unmarshal "False" into bool`)},
|
||||
{in: `{"B": "null"}`, ptr: new(B), out: B{false}},
|
||||
{in: `{"B": "nul"}`, ptr: new(B), err: errors.New(`json: invalid use of ,string struct tag, trying to unmarshal "nul" into bool`)},
|
||||
}
|
||||
|
||||
func TestMarshal(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue