From 25558de3bd1bd2441cd3442394502b567ea94fbe Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Sat, 16 Apr 2022 07:07:31 -0500 Subject: [PATCH] Add UnmarshalJSON to pgtype.Int2 fixes https://github.com/jackc/pgtype/issues/153 --- int2.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/int2.go b/int2.go index 3eb5aeb5..0775882a 100644 --- a/int2.go +++ b/int2.go @@ -3,6 +3,7 @@ package pgtype import ( "database/sql/driver" "encoding/binary" + "encoding/json" "fmt" "math" "strconv" @@ -302,3 +303,19 @@ func (src Int2) MarshalJSON() ([]byte, error) { return nil, errBadStatus } + +func (dst *Int2) UnmarshalJSON(b []byte) error { + var n *int16 + err := json.Unmarshal(b, &n) + if err != nil { + return err + } + + if n == nil { + *dst = Int2{Status: Null} + } else { + *dst = Int2{Int: *n, Status: Present} + } + + return nil +}