From f6687fef1261d6c411529bdad598eba7307aa7eb Mon Sep 17 00:00:00 2001 From: Victor Starodub Date: Thu, 14 Apr 2016 13:03:15 +0300 Subject: [PATCH] Marshalling null instead of empty slice in Raw(). --- jwriter/writer.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/jwriter/writer.go b/jwriter/writer.go index eaf7924..7366b27 100644 --- a/jwriter/writer.go +++ b/jwriter/writer.go @@ -46,10 +46,17 @@ func (w *Writer) RawString(s string) { // RawByte appends raw binary data to the buffer or sets the error if it is given. Useful for // calling with results of MarshalJSON-like functions. func (w *Writer) Raw(data []byte, err error) { - if w.Error == nil && err != nil { + if w.Error != nil { + return + } + + switch { + case err != nil: w.Error = err - } else if w.Error == nil { + case len(data) > 0: w.Buffer.AppendBytes(data) + default: + w.RawString("null") } }