官方的五分钟入门文档:
http://wiki.fasterxml.com/JacksonInFiveMinutes
国内某位同仁的翻译版(算是翻译版吧)
http://shensy.iteye.com/blog/1717776
除了这些简单的应用外,有时还会遇到一些比较特殊的场景
pojo的字段名与实际的属性名不一样
某些属性不需要作json转换
字段以指定的顺序显示
日期类型按指定的格式转化
举例:
pojo的字段名与实际的属性名不一样
比如以下实体
public class User { private String username; private String nickName; //真实姓名 private String fullName; ..... }
但要求转化后的json字符串是这样的:
{"username":"xxx", "nickName":"xxxx", "realName":"xxxx"}
其中真实姓名这个字段在实体中是叫fullNam,但要求转后显示:realName
解决方式:
使用Jackson的注解即可:
public class User { private String username; private String nickName; //真实姓名 @JsonProperty("realName") private String fullName; ..... }
2. 某些属性不需要作json转换
比如以下实体
public class User { private String username; private String nickName; //真实姓名 private String fullName; ..... }
但要求转化后的json字符串是这样的:
{"username":"xxx", "realName":"xxxx"}
其中nickName这个字段要求不要转换成json
解决方式:
使用Jackson的注解即可:
public class User { private String username; @JsonIgnore private String nickName; //真实姓名 @JsonProperty("realName") private String fullName; ..... }
3.字段以指定的顺序显示
比如以下实体
public class User { private String username; private String nickName; //真实姓名 private String fullName; ..... }
但要求转化后的json字符串是这样的:
{"fullName":"xxxx","username":"xxx", "nickName":"xxxx"}
字段显示的顺序为:fullName,username,nickName
解决方式:
使用Jackson的注解即可:
//调转顺序 @JsonPropertyOrder({ "fullName", "username", "nickName" }) public class User { private String username; @JsonIgnore private String nickName; //真实姓名 @JsonProperty("realName") private String fullName; ..... }
4.日期类型按指定的格式转化
比如以下实体
public static class DateBean { public Date startDate; public Date endDate; }
但要求转化后的json字符串是这样的:
{"startDate":"yyyy-MM-dd HH:mm:ss","endDate":"yyyy-MM-dd HH:mm:ss"}
解决方式:
使用Jackson的注解即可:
public static class DateBean { //按annotation中的日期格式存储。 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") public Date startDate; //按annotation中的日期格式存储。 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") public Date endDate; }