From acda8fe1555da5a5c2c0cff758c9b2b25d2c159e Mon Sep 17 00:00:00 2001 From: Sam Fowler Date: Wed, 24 Jun 2020 14:16:03 +1000 Subject: [PATCH] Allow for nil tags --- encoder.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/encoder.go b/encoder.go index 7ab271a..c84344a 100644 --- a/encoder.go +++ b/encoder.go @@ -104,9 +104,21 @@ func encodeStruct(structVal reflect.Value) ([]byte, error) { name = fieldType.Name } - p, err := encodeValue(fieldVal) - if err != nil { - return nil, err + var p []byte + var err error + // if the tag has the nilTag property, write it as '' + if strings.HasSuffix(name, ",nilTag") && fieldVal.IsNil() { + p, err = []byte(""), nil + + name = strings.TrimSuffix(name, ",nilTag") + if name == "" { + name = fieldType.Name + } + } else { + p, err = encodeValue(fieldVal) + if err != nil { + return nil, err + } } b.WriteString("")