Skip to content

Commit 28f6444

Browse files
committed
fix json-iterator#291 omit empty was not handled properly for json raw message
1 parent 286d521 commit 28f6444

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ func (cfg *frozenConfig) validateJsonRawMessage(extension EncoderExtension) {
191191
stream.WriteRaw(string(rawMessage))
192192
}
193193
}, func(ptr unsafe.Pointer) bool {
194-
return false
194+
return len(*((*json.RawMessage)(ptr))) == 0
195195
}}
196196
extension[reflect2.TypeOfPtr((*json.RawMessage)(nil)).Elem()] = encoder
197197
extension[reflect2.TypeOfPtr((*RawMessage)(nil)).Elem()] = encoder

value_tests/raw_message_test.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
package test
22

3-
import "encoding/json"
3+
import (
4+
"encoding/json"
5+
)
46

57
func init() {
68
marshalCases = append(marshalCases,
79
json.RawMessage("{}"),
10+
selectedMarshalCase{struct {
11+
Env string `json:"env"`
12+
Extra json.RawMessage `json:"extra,omitempty"`
13+
}{
14+
Env: "jfdk",
15+
}},
816
)
917
unmarshalCases = append(unmarshalCases, unmarshalCase{
1018
ptr: (*json.RawMessage)(nil),

0 commit comments

Comments
 (0)