Skip to content

Commit ae7ae31

Browse files
committed
add gh417 in testapp
1 parent db7c89b commit ae7ae31

File tree

3 files changed

+87
-0
lines changed

3 files changed

+87
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package testapp.endpoint.ghissues.gh417;
2+
3+
import com.alibaba.fastjson.JSON;
4+
import com.alibaba.fastjson.annotation.JSONField;
5+
import com.alibaba.fastjson.serializer.JSONSerializer;
6+
import com.alibaba.fastjson.serializer.ObjectSerializer;
7+
import com.alibaba.fastjson.serializer.SerializeConfig;
8+
import com.alibaba.fastjson.serializer.SerializeWriter;
9+
import org.joda.time.DateTime;
10+
11+
import java.lang.reflect.Type;
12+
import java.util.Date;
13+
14+
public class FastJsonIssue {
15+
public static class Record {
16+
@JSONField(format = "yyyy-MMM-dd")
17+
public Date date1 = new Date();
18+
19+
@JSONField(format = "yyyyMMdd")
20+
public Date date2 = date1;
21+
22+
@JSONField(format = "yyyy_MM_dd hh:mm")
23+
public DateTime dateTime = DateTime.now();
24+
}
25+
26+
public static class JodaDateTimeSerializer implements ObjectSerializer {
27+
@Override
28+
public void write(
29+
JSONSerializer serializer,
30+
Object object,
31+
Object fieldName,
32+
Type fieldType,
33+
int features
34+
) {
35+
SerializeWriter out = serializer.getWriter();
36+
if (object == null) {
37+
out.writeNull();
38+
} else {
39+
Class cls = object.getClass();
40+
if (cls == DateTime.class) {
41+
out.writeString(object.toString());
42+
} else {
43+
out.writeString(object.toString());
44+
}
45+
}
46+
}
47+
}
48+
49+
public static void main(String[] args) {
50+
SerializeConfig.getGlobalInstance().put(DateTime.class, new JodaDateTimeSerializer());
51+
System.out.println(JSON.toJSONString(new Record(), true));
52+
}
53+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package testapp.endpoint.ghissues.gh417;
2+
3+
import act.controller.annotation.UrlContext;
4+
import act.util.JsonView;
5+
import org.osgl.mvc.annotation.GetAction;
6+
import testapp.endpoint.ghissues.GithubIssueBase;
7+
8+
@UrlContext("417")
9+
public class GH417 extends GithubIssueBase {
10+
11+
@JsonView
12+
@GetAction
13+
public Record test() {
14+
return new Record();
15+
}
16+
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package testapp.endpoint.ghissues.gh417;
2+
3+
import com.alibaba.fastjson.annotation.JSONField;
4+
import org.joda.time.DateTime;
5+
6+
import java.util.Date;
7+
8+
public class Record {
9+
@JSONField(format = "yyyy-MMM-dd")
10+
public Date date1 = new Date();
11+
12+
@JSONField(format = "yyyyMMdd")
13+
public Date date2 = date1;
14+
15+
@JSONField(format = "yyyy_MM_dd hh:mm")
16+
public DateTime dateTime = DateTime.now();
17+
}

0 commit comments

Comments
 (0)