@@ -12,58 +12,29 @@ type Person struct {
1212 Name string `json:"name"`
1313 Age int `json:"age"`
1414
15- Birthday1 Carbon `json:"birthday1" carbon:"layout:2006-01-02 15:04:05"`
16- Birthday2 Carbon `json:"birthday2" carbon:"layout:2006-01-02 15:04:05.999"`
17- Birthday3 Carbon `json:"birthday3" carbon:"layout:2006-01-02 15:04:05.999999"`
18- Birthday4 Carbon `json:"birthday4" carbon:"layout:2006-01-02 15:04:05.999999999"`
19-
20- GraduatedAt1 Carbon `json:"graduated_at1" carbon:"layout:2006-01-02"`
21- GraduatedAt2 Carbon `json:"graduated_at2" carbon:"layout:2006-01-02.999"`
22- GraduatedAt3 Carbon `json:"graduated_at3" carbon:"layout:2006-01-02.999999"`
23- GraduatedAt4 Carbon `json:"graduated_at4" carbon:"layout:2006-01-02.999999999"`
24-
25- OperatedAt1 Carbon `json:"operated_at1" carbon:"layout:15:04:05"`
26- OperatedAt2 Carbon `json:"operated_at2" carbon:"layout:15:04:05.999"`
27- OperatedAt3 Carbon `json:"operated_at3" carbon:"layout:15:04:05.999999"`
28- OperatedAt4 Carbon `json:"operated_at4" carbon:"layout:15:04:05.999999999"`
29-
30- CreatedAt1 Carbon `json:"created_at1" carbon:"format:Y-m-d"`
31- CreatedAt2 Carbon `json:"created_at2" carbon:"format:H:i:s"`
32- CreatedAt3 Carbon `json:"created_at3" carbon:"format:Y-m-d H:i:s"`
33- CreatedAt4 Carbon `json:"created_at4"`
34- }
15+ Birthday0 Carbon `json:"birthday0"`
16+
17+ Birthday1 Carbon `json:"birthday1" carbon:"layout:2006-01-02"`
18+ Birthday2 Carbon `json:"birthday2" carbon:"layout:15:04:05"`
19+ Birthday3 Carbon `json:"birthday3" carbon:"layout:2006-01-02 15:04:05"`
3520
36- type Student struct {
37- Name string `json:"name"`
38- Age int `json:"age"`
39- Birthday Carbon `json:"birthday"`
21+ Birthday4 Carbon `json:"birthday4" carbon:"format:Y-m-d"`
22+ Birthday5 Carbon `json:"birthday5" carbon:"format:H:i:s"`
23+ Birthday6 Carbon `json:"birthday6" carbon:"format:Y-m-d H:i:s"`
4024}
4125
4226func TestCarbon_MarshalJSON_LoadTag (t * testing.T ) {
4327 c := Parse ("2020-08-05 13:14:15.999999999" , PRC )
4428 person := Person {
45- Name : "gouguoyin" ,
46- Age : 18 ,
47-
29+ Name : "gouguoyin" ,
30+ Age : 18 ,
31+ Birthday0 : c ,
4832 Birthday1 : c ,
4933 Birthday2 : c ,
5034 Birthday3 : c ,
5135 Birthday4 : c ,
52-
53- GraduatedAt1 : c ,
54- GraduatedAt2 : c ,
55- GraduatedAt3 : c ,
56- GraduatedAt4 : c ,
57-
58- OperatedAt1 : c ,
59- OperatedAt2 : c ,
60- OperatedAt3 : c ,
61- OperatedAt4 : c ,
62-
63- CreatedAt1 : c ,
64- CreatedAt2 : c ,
65- CreatedAt3 : c ,
66- CreatedAt4 : c ,
36+ Birthday5 : c ,
37+ Birthday6 : c ,
6738 }
6839
6940 loadErr := LoadTag (& person )
@@ -72,64 +43,55 @@ func TestCarbon_MarshalJSON_LoadTag(t *testing.T) {
7243 data , marshalErr := json .Marshal (& person )
7344 assert .Nil (t , marshalErr )
7445
75- assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday1 .String ())
76- assert .Equal (t , "2020-08-05 13:14:15.999" , person .Birthday2 .String ())
77- assert .Equal (t , "2020-08-05 13:14:15.999999" , person .Birthday3 .String ())
78- assert .Equal (t , "2020-08-05 13:14:15.999999999" , person .Birthday4 .String ())
79-
80- assert .Equal (t , "2020-08-05" , person .GraduatedAt1 .String ())
81- assert .Equal (t , "2020-08-05.999" , person .GraduatedAt2 .String ())
82- assert .Equal (t , "2020-08-05.999999" , person .GraduatedAt3 .String ())
83- assert .Equal (t , "2020-08-05.999999999" , person .GraduatedAt4 .String ())
46+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday0 .String ())
8447
85- assert .Equal (t , "13:14:15" , person .OperatedAt1 .String ())
86- assert .Equal (t , "13:14:15.999" , person .OperatedAt2 .String ())
87- assert .Equal (t , "13:14:15.999999" , person .OperatedAt3 .String ())
88- assert .Equal (t , "13:14:15.999999999" , person .OperatedAt4 .String ())
48+ assert .Equal (t , "2020-08-05" , person .Birthday1 .String ())
49+ assert .Equal (t , "13:14:15" , person .Birthday2 .String ())
50+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday3 .String ())
8951
90- assert .Equal (t , "2020-08-05" , person .CreatedAt1 .String ())
91- assert .Equal (t , "13:14:15" , person .CreatedAt2 .String ())
92- assert .Equal (t , "2020-08-05 13:14:15" , person .CreatedAt3 .String ())
93- assert .Equal (t , "2020-08-05 13:14:15" , person .CreatedAt4 .String ())
52+ assert .Equal (t , "2020-08-05" , person .Birthday4 .String ())
53+ assert .Equal (t , "13:14:15" , person .Birthday5 .String ())
54+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday6 .String ())
9455
9556 fmt .Printf ("person output by json:\n %s\n " , data )
9657}
9758
9859func TestCarbon_MarshalJSON_UnLoadTag (t * testing.T ) {
9960 c := Parse ("2020-08-05 13:14:15.999999999" , PRC )
100- student := Student {
101- Name : "gouguoyin" ,
102- Age : 18 ,
103- Birthday : c ,
61+ person := Person {
62+ Name : "gouguoyin" ,
63+ Age : 18 ,
64+ Birthday1 : c ,
65+ Birthday2 : c ,
66+ Birthday3 : c ,
67+ Birthday4 : c ,
68+ Birthday5 : c ,
69+ Birthday6 : c ,
10470 }
10571
106- data , marshalErr := json .Marshal (& student )
72+ data , marshalErr := json .Marshal (& person )
10773 assert .Nil (t , marshalErr )
10874
109- assert .Equal (t , "2020-08-05 13:14:15" , student .Birthday .String ())
75+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday1 .String ())
76+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday2 .String ())
77+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday3 .String ())
78+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday4 .String ())
79+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday5 .String ())
80+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday6 .String ())
11081 fmt .Printf ("student output by json:\n %s\n " , data )
11182}
11283
11384func TestCarbon_UnmarshalJSON_LoadTag (t * testing.T ) {
11485 str := `{
115- "name": "gouguoyin",
116- "age": 18,
117- "birthday1": "2020-08-05 13:14:15",
118- "birthday2": "2020-08-05 13:14:15.999",
119- "birthday3": "2020-08-05 13:14:15.999999",
120- "birthday4": "2020-08-05 13:14:15.999999999",
121- "graduated_at1": "2020-08-05",
122- "graduated_at2": "2020-08-05.999",
123- "graduated_at3": "2020-08-05.999999",
124- "graduated_at4": "2020-08-05.999999999",
125- "operated_at1": "13:14:15",
126- "operated_at2": "13:14:15.999",
127- "operated_at3": "13:14:15.999999",
128- "operated_at4": "13:14:15.999999999",
129- "created_at1": "2020-08-05",
130- "created_at2": "13:14:15",
131- "created_at3": "2020-08-05 13:14:15",
132- "created_at4": "2020-08-05 13:14:15"
86+ "name":"gouguoyin",
87+ "age":18,
88+ "birthday0":"2020-08-05 13:14:15",
89+ "birthday1":"2020-08-05",
90+ "birthday2":"13:14:15",
91+ "birthday3":"2020-08-05 13:14:15",
92+ "birthday4":"2020-08-05",
93+ "birthday5":"13:14:15",
94+ "birthday6":"2020-08-05 13:14:15"
13395 }`
13496
13597 var person Person
@@ -140,60 +102,51 @@ func TestCarbon_UnmarshalJSON_LoadTag(t *testing.T) {
140102 unmarshalErr := json .Unmarshal ([]byte (str ), & person )
141103 assert .Nil (t , unmarshalErr )
142104
143- assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday1 .String ())
144- assert .Equal (t , "2020-08-05 13:14:15.999" , person .Birthday2 .String ())
145- assert .Equal (t , "2020-08-05 13:14:15.999999" , person .Birthday3 .String ())
146- assert .Equal (t , "2020-08-05 13:14:15.999999999" , person .Birthday4 .String ())
147-
148- assert .Equal (t , "2020-08-05" , person .GraduatedAt1 .String ())
149- assert .Equal (t , "2020-08-05.999" , person .GraduatedAt2 .String ())
150- assert .Equal (t , "2020-08-05.999999" , person .GraduatedAt3 .String ())
151- assert .Equal (t , "2020-08-05.999999999" , person .GraduatedAt4 .String ())
152-
153- assert .Equal (t , "13:14:15" , person .OperatedAt1 .String ())
154- assert .Equal (t , "13:14:15.999" , person .OperatedAt2 .String ())
155- assert .Equal (t , "13:14:15.999999" , person .OperatedAt3 .String ())
156- assert .Equal (t , "13:14:15.999999999" , person .OperatedAt4 .String ())
157-
158- assert .Equal (t , "2020-08-05" , person .CreatedAt1 .String ())
159- assert .Equal (t , "13:14:15" , person .CreatedAt2 .String ())
160- assert .Equal (t , "2020-08-05 13:14:15" , person .CreatedAt3 .String ())
105+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday0 .String ())
106+ assert .Equal (t , "2020-08-05" , person .Birthday1 .String ())
107+ assert .Equal (t , "13:14:15" , person .Birthday2 .String ())
108+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday3 .String ())
109+ assert .Equal (t , "2020-08-05" , person .Birthday4 .String ())
110+ assert .Equal (t , "13:14:15" , person .Birthday5 .String ())
111+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday6 .String ())
161112
162113 fmt .Printf ("Json string parse to person:\n %+v\n " , person )
163114}
164115
165116func TestCarbon_UnmarshalJSON_UnLoadTag (t * testing.T ) {
166117 str := `{
167- "name": "gouguoyin",
168- "age": 18,
169- "birthday": "2020-08-05 13:14:15.999"
118+ "name":"gouguoyin",
119+ "age":18,
120+ "birthday0":"2020-08-05 13:14:15",
121+ "birthday1":"2020-08-05"
170122 }`
171123
172- var student Student
173- unmarshalErr := json .Unmarshal ([]byte (str ), & student )
124+ var person Person
125+ unmarshalErr := json .Unmarshal ([]byte (str ), & person )
174126 assert .Nil (t , unmarshalErr )
175127
176- assert .Equal (t , "2020-08-05 13:14:15" , student .Birthday .String ())
177- fmt .Printf ("Json string parse to student:\n %+v\n " , student )
128+ assert .Equal (t , "2020-08-05 13:14:15" , person .Birthday0 .String ())
129+ assert .Equal (t , "2020-08-05 00:00:00" , person .Birthday1 .String ())
130+ fmt .Printf ("Json string parse to person:\n %+v\n " , person )
178131}
179132
180133func TestError_JSON (t * testing.T ) {
181- student := Student {
182- Name : "gouguoyin" ,
183- Age : 18 ,
184- Birthday : Parse ("XXX" ),
134+ person := Person {
135+ Name : "gouguoyin" ,
136+ Age : 18 ,
137+ Birthday1 : Parse ("XXX" ),
185138 }
186139
187- _ , marshalErr := json .Marshal (student )
188- fmt .Println ("marshal error" , marshalErr .Error ())
140+ _ , marshalErr := json .Marshal (person )
141+ fmt .Println ("marshal error: " , marshalErr .Error ())
189142 assert .NotNil (t , marshalErr )
190143
191144 str := `{
192145 "name": "gouguoyin",
193146 "age": 18,
194- "birthday ": "2020-08-05 13:14:15.999 "
147+ "birthday1 ": "2020-08-05 13:14:15"
195148 }`
196- unmarshalErr := json .Unmarshal ([]byte (str ), & student )
197- fmt .Println ("unmarshal error" , unmarshalErr .Error ())
149+ unmarshalErr := json .Unmarshal ([]byte (str ), & person )
150+ fmt .Println ("unmarshal error: " , unmarshalErr .Error ())
198151 assert .NotNil (t , unmarshalErr )
199152}
0 commit comments