mirror of
https://github.com/json-iterator/go.git
synced 2024-11-27 08:30:57 +02:00
85 lines
1.4 KiB
Go
85 lines
1.4 KiB
Go
package test
|
|
|
|
import (
|
|
"encoding"
|
|
"encoding/json"
|
|
)
|
|
|
|
func init() {
|
|
jm := json.Marshaler(jmOfStruct{})
|
|
tm1 := encoding.TextMarshaler(tmOfStruct{})
|
|
tm2 := encoding.TextMarshaler(&tmOfStructInt{})
|
|
marshalCases = append(marshalCases,
|
|
jmOfStruct{},
|
|
&jm,
|
|
tmOfStruct{},
|
|
&tm1,
|
|
tmOfStructInt{},
|
|
&tm2,
|
|
map[tmOfStruct]int{
|
|
{}: 100,
|
|
},
|
|
map[*tmOfStruct]int{
|
|
{}: 100,
|
|
},
|
|
map[encoding.TextMarshaler]int{
|
|
tm1: 100,
|
|
},
|
|
)
|
|
unmarshalCases = append(unmarshalCases, unmarshalCase{
|
|
ptr: (*tmOfMap)(nil),
|
|
input: `"{1:2}"`,
|
|
}, unmarshalCase{
|
|
ptr: (*tmOfMapPtr)(nil),
|
|
input: `"{1:2}"`,
|
|
})
|
|
}
|
|
|
|
type jmOfStruct struct {
|
|
F2 chan []byte
|
|
}
|
|
|
|
func (q jmOfStruct) MarshalJSON() ([]byte, error) {
|
|
return []byte(`""`), nil
|
|
}
|
|
|
|
func (q *jmOfStruct) UnmarshalJSON(value []byte) error {
|
|
return nil
|
|
}
|
|
|
|
type tmOfStruct struct {
|
|
F2 chan []byte
|
|
}
|
|
|
|
func (q tmOfStruct) MarshalText() ([]byte, error) {
|
|
return []byte(`""`), nil
|
|
}
|
|
|
|
func (q *tmOfStruct) UnmarshalText(value []byte) error {
|
|
return nil
|
|
}
|
|
|
|
type tmOfStructInt struct {
|
|
Field2 int
|
|
}
|
|
|
|
func (q *tmOfStructInt) MarshalText() ([]byte, error) {
|
|
return []byte(`"abc"`), nil
|
|
}
|
|
|
|
func (q *tmOfStructInt) UnmarshalText(value []byte) error {
|
|
return nil
|
|
}
|
|
|
|
type tmOfMap map[int]int
|
|
|
|
func (q tmOfMap) UnmarshalText(value []byte) error {
|
|
return nil
|
|
}
|
|
|
|
type tmOfMapPtr map[int]int
|
|
|
|
func (q *tmOfMapPtr) UnmarshalText(value []byte) error {
|
|
return nil
|
|
}
|