官方的五分钟入门文档:
国内某位同仁的翻译版(算是翻译版吧)
除了这些简单的应用外,有时还会遇到一些比较特殊的场景
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;
}