File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed
Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -36,7 +36,7 @@ type StringOrNumber string
3636
3737// UnmarshalJSON implements json.Unmarshaler
3838func (n * StringOrNumber ) UnmarshalJSON (data []byte ) error {
39- if len (data ) > 2 && data [0 ] == '"' && data [len (data )- 1 ] == '"' {
39+ if len (data ) >= 2 && data [0 ] == '"' && data [len (data )- 1 ] == '"' {
4040 var v string
4141 if err := json .Unmarshal (data , & v ); err != nil {
4242 return err
Original file line number Diff line number Diff line change @@ -44,11 +44,24 @@ var _ = Describe("StringOrNumber", func() {
4444 Expect (n ).To (Equal (StringOrNumber ("33" )))
4545 })
4646
47+ It ("should decode strings" , func () {
48+ var n StringOrNumber
49+ Expect (json .Unmarshal ([]byte (`""` ), & n )).To (Succeed ())
50+ Expect (n ).To (Equal (StringOrNumber ("" )))
51+ })
52+
4753 It ("should encode to strings" , func () {
4854 var n StringOrNumber = "33"
4955 bin , err := json .Marshal (n )
5056 Expect (err ).NotTo (HaveOccurred ())
5157 Expect (string (bin )).To (Equal (`"33"` ))
5258 })
5359
60+ It ("should encode to strings" , func () {
61+ var n StringOrNumber = ""
62+ bin , err := json .Marshal (n )
63+ Expect (err ).NotTo (HaveOccurred ())
64+ Expect (string (bin )).To (Equal (`""` ))
65+ })
66+
5467})
You can’t perform that action at this time.
0 commit comments