-
-
Notifications
You must be signed in to change notification settings - Fork 176
Open
Description
Example code with panic in go-json, but in encoding/json all good:
package main
import (
"encoding/json"
"fmt"
"time"
gojson "github.com/goccy/go-json"
)
func main() {
data := []*time.Time{nil}
b, _ := json.Marshal(data)
fmt.Printf("std: %s\n", string(b))
b, _ = gojson.Marshal(data)
fmt.Printf("go-json: %s\n", string(b))
}
Output:
std: [null]
panic: value method time.Time.MarshalJSON called using nil *Time pointer
goroutine 1 [running]:
time.(*Time).MarshalJSON(0xc89e610?)
<autogenerated>:1 +0x3a
github.com/goccy/go-json/internal/encoder.AppendMarshalJSON(0xc00007e8f0, 0xc000134300, {0xc000130000, 0x1, 0x400}, {0xc7c8e40?, 0x0?})
/Users/mirecl/go/pkg/mod/github.com/goccy/go-json@v0.10.3/internal/encoder/encoder.go:430 +0x276
github.com/goccy/go-json/internal/encoder/vm.appendMarshalJSON(0x0?, 0x0?, {0xc000130000?, 0x0?, 0x0?}, {0xc7c8e40?, 0x0?})
/Users/mirecl/go/pkg/mod/github.com/goccy/go-json@v0.10.3/internal/encoder/vm/util.go:152 +0x25
github.com/goccy/go-json/internal/encoder/vm.Run(0xc00007e8f0, {0xc000130000?, 0x0?, 0x400?}, 0xc00012e150?)
/Users/mirecl/go/pkg/mod/github.com/goccy/go-json@v0.10.3/internal/encoder/vm/vm.go:271 +0x217e
github.com/goccy/go-json.encodeRunCode(0xc00007e8f0?, {0xc000130000?, 0xc000104dc8?, 0xc00007c0c0?}, 0xc000130400?)
/Users/mirecl/go/pkg/mod/github.com/goccy/go-json@v0.10.3/encode.go:310 +0x56
github.com/goccy/go-json.encode(0xc00007e8f0, {0xc7a8320, 0xc000010090})
/Users/mirecl/go/pkg/mod/github.com/goccy/go-json@v0.10.3/encode.go:235 +0x205
github.com/goccy/go-json.marshal({0xc7a8320, 0xc000010090}, {0x0, 0x0, 0x1?})
/Users/mirecl/go/pkg/mod/github.com/goccy/go-json@v0.10.3/encode.go:150 +0xb9
github.com/goccy/go-json.MarshalWithOption(...)
/Users/mirecl/go/pkg/mod/github.com/goccy/go-json@v0.10.3/json.go:185
github.com/goccy/go-json.Marshal({0xc7a8320?, 0xc000010090?})
/Users/mirecl/go/pkg/mod/github.com/goccy/go-json@v0.10.3/json.go:170 +0x25
main.main()
/Users/mirecl/Desktop/mapping/untitled folder/main.go:17 +0xb6
exit status 2
nparamonov
Metadata
Metadata
Assignees
Labels
No labels