From cbbacf075d600ed6ff52afa8d82a9a3d205e3983 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Mon, 10 Feb 2020 20:08:45 +0800 Subject: [PATCH] custom json ser --- single_file_tests/json.go | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/single_file_tests/json.go b/single_file_tests/json.go index e29ea45..f604c87 100644 --- a/single_file_tests/json.go +++ b/single_file_tests/json.go @@ -19,25 +19,24 @@ type Test struct { Bool bool `json:"bool"` BoolInStr bool `json:"bool_in_str,string"` Long int64 `json:"long"` - Long2 TheLong `json:"long2"` + Long2 *TheLong `json:"long2"` } // https://www.cnblogs.com/yorkyang/p/8990570.html func (l *TheLong) MarshalJSON() (data []byte, err error) { - fmt.Println("------")//?? if l != nil { - data = []byte(strconv.FormatInt(l.Value, 10)) + data = []byte("\""+strconv.FormatInt(l.Value, 10) + "\"") } return } -func (l *TheLong) UnmarshalJSON(data []byte) error { - v, err := strconv.ParseInt(string(data), 10, 64) - if err != nil { - return err - } - l.Value = v - return nil -} +// func (l *TheLong) UnmarshalJSON(data []byte) error { +// v, err := strconv.ParseInt(string(data), 10, 64) +// if err != nil { +// return err +// } +// l.Value = v +// return nil +// } func main() { @@ -50,7 +49,7 @@ func main() { Bool: true, BoolInStr: true, Long: 342438204823084023, - Long2: TheLong { Value: 1111111111111111111 }, + Long2: &TheLong { Value: 342438204823084023 }, } s, err := json.Marshal(t) if err != nil {