官方的五分钟入门文档:
http://wiki.fasterxml.com/JacksonInFiveMinutes
国内某位同仁的翻译版(算是翻译版吧)
http://shensy.iteye.com/blog/1717776
除了这些简单的应用外,有时还会遇到一些比较特殊的场景
1.pojo的字段名与实际的属性名不一样
2.某些属性不需要作json转换
3.字段以指定的顺序显示
4.日期类型按指定的格式转化
举例:
1.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;
…..
}
反序列化时则不会设置@JsonIgnore标记的字段,需要额外使用set()设置
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;
}